Skip to content

Instantly share code, notes, and snippets.

@pbostrom
Last active December 28, 2015 04:09
Show Gist options
  • Save pbostrom/7440417 to your computer and use it in GitHub Desktop.
Save pbostrom/7440417 to your computer and use it in GitHub Desktop.
Clojail exception
; nrepl.el 0.2.0 (Clojure 1.5.1, nREPL 0.2.1)
user> (use 'clojail.testers)
nil
user> (use 'clojail.core)
nil
user> (def mysb (sandbox secure-tester-without-def))
#'user/mysb
user> (mysb '(range 10))
(0 1 2 3 4 5 6 7 8 9)
user> (mysb '(range count))
NullPointerException clojure.lang.Numbers.ops (Numbers.java:942)
user> (try (mysb '(range count)) (catch Exception e :fail))
NullPointerException clojure.lang.Numbers.ops (Numbers.java:942)
user> (try (mysb '(range foobar)) (catch Exception e :fail))
:fail
user> (range count)
ClassCastException clojure.core$count cannot be cast to java.lang.Number clojure.lang.Numbers.lt (Numbers.java:219)
user> (try (mysb '(range count)) (catch Exception e :fail))
NullPointerException clojure.lang.Numbers.ops (Numbers.java:942)
user> (instance? Exception *e)
true
user> (instance? java.lang.Exception *e)
true
user> (instance? java.lang.NullPointerException *e)
true
user>
(use 'clojail.testers)
(use 'clojail.core)
(def mysb (sandbox secure-tester-without-def))
(mysb '(range 10))
(mysb '(range count))
(try (mysb '(range count)) (catch Exception e :fail))
(try (mysb '(range foobar)) (catch Exception e :fail))
(range count)
(try (mysb '(range count)) (catch Exception e :fail))
(instance? Exception *e)
(instance? java.lang.Exception *e)
(instance? java.lang.NullPointerException *e)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment