Created
March 13, 2019 01:20
-
-
Save liquidz/5b8036551cbde7db9dbe2264b1a9da2a to your computer and use it in GitHub Desktop.
faaaa
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ docker run -it clojure:tools-deps | |
Clojure 1.10.0 | |
user=> (java.net.URL. nil) | |
Execution error (NullPointerException) at java.net.URL/<init> (URL.java:532). | |
null | |
user=> (try (java.net.URL. nil) (catch java.net.MalformedURLException _ "faaaa")) | |
"faaaa" | |
user=> |
ayato-p
commented
Mar 13, 2019
https://twitter.com/uochan/status/1105640405213708288
user=> (java.net.URL. nil)
Execution error (NullPointerException) at java.net.URL/<init> (URL.java:532).
null
user=> *e
#error {
:cause nil
:via
[{:type java.net.MalformedURLException
:message nil
:at [java.net.URL <init> "URL.java" 627]}
{:type java.lang.NullPointerException
:message nil
:at [java.net.URL <init> "URL.java" 532]}]
...
java.net.URL
constructor calls initCause
with the thrown exception.
https://hg.openjdk.java.net/jdk/jdk/file/1cef5fc16af8/src/java.base/share/classes/java/net/URL.java#l685
user=> (def a (java.net.MalformedURLException. "foo"))
#'user/a
user=> (throw a)
Execution error (MalformedURLException) at sun.reflect.NativeConstructorAccessorImpl/newInstance0 (NativeConstructorAccessorImpl.java:-2).
foo
user=> (def b (NullPointerException. "bar"))
#'user/b
user=> (throw b)
Execution error (NullPointerException) at sun.reflect.NativeConstructorAccessorImpl/newInstance0 (NativeConstructorAccessorImpl.java:-2).
bar
user=> (.initCause a b)
#error {
:cause "bar"
:via
[{:type java.net.MalformedURLException
:message "foo"
:at [sun.reflect.NativeConstructorAccessorImpl newInstance0 "NativeConstructorAccessorImpl.java" -2]}
{:type java.lang.NullPointerException
:message "bar"
:at [sun.reflect.NativeConstructorAccessorImpl newInstance0 "NativeConstructorAccessorImpl.java" -2]}]
:trace
[[sun.reflect.NativeConstructorAccessorImpl newInstance0 "NativeConstructorAccessorImpl.java" -2]
[sun.reflect.NativeConstructorAccessorImpl newInstance "NativeConstructorAccessorImpl.java" 62]
[sun.reflect.DelegatingConstructorAccessorImpl newInstance "DelegatingConstructorAccessorImpl.java" 45]
[java.lang.reflect.Constructor newInstance "Constructor.java" 423]
[clojure.lang.Compiler$NewExpr eval "Compiler.java" 2615]
[clojure.lang.Compiler$DefExpr eval "Compiler.java" 457]
[clojure.lang.Compiler eval "Compiler.java" 7181]
[clojure.lang.Compiler eval "Compiler.java" 7131]
[clojure.core$eval invokeStatic "core.clj" 3214]
[clojure.core$eval invoke "core.clj" 3210]
[clojure.main$repl$read_eval_print__9068$fn__9071 invoke "main.clj" 414]
[clojure.main$repl$read_eval_print__9068 invoke "main.clj" 414]
[clojure.main$repl$fn__9077 invoke "main.clj" 435]
[clojure.main$repl invokeStatic "main.clj" 435]
[clojure.main$repl_opt invokeStatic "main.clj" 499]
[clojure.main$main invokeStatic "main.clj" 598]
[clojure.main$main doInvoke "main.clj" 561]
[clojure.lang.RestFn invoke "RestFn.java" 397]
[clojure.lang.AFn applyToHelper "AFn.java" 152]
[clojure.lang.RestFn applyTo "RestFn.java" 132]
[clojure.lang.Var applyTo "Var.java" 705]
[clojure.main main "main.java" 37]]}
user=> (throw a)
Execution error (NullPointerException) at sun.reflect.NativeConstructorAccessorImpl/newInstance0 (NativeConstructorAccessorImpl.java:-2).
bar
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment