Skip to content

Instantly share code, notes, and snippets.

@gmarik
Created August 17, 2012 17:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gmarik/3380878 to your computer and use it in GitHub Desktop.
Save gmarik/3380878 to your computer and use it in GitHub Desktop.
Error handling

#Clojure

wow, what a stack trace

$ time clj -e '(bar 1)'
Exception in thread "main" java.lang.RuntimeException: Unable to resolve symbol: bar in this context, compiling:(NO_SOURCE_PATH:1)
	at clojure.lang.Compiler.analyze(Compiler.java:6281)
	at clojure.lang.Compiler.analyze(Compiler.java:6223)
	at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3497)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:6457)
	at clojure.lang.Compiler.analyze(Compiler.java:6262)
	at clojure.lang.Compiler.analyze(Compiler.java:6223)
	at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5618)
	at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5054)
	at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3674)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:6453)
	at clojure.lang.Compiler.analyze(Compiler.java:6262)
	at clojure.lang.Compiler.eval(Compiler.java:6508)
	at clojure.lang.Compiler.eval(Compiler.java:6477)
	at clojure.core$eval.invoke(core.clj:2797)
	at clojure.main$eval_opt.invoke(main.clj:297)
	at clojure.main$initialize.invoke(main.clj:316)
	at clojure.main$null_opt.invoke(main.clj:349)
	at clojure.main$main.doInvoke(main.clj:427)
	at clojure.lang.RestFn.invoke(RestFn.java:421)
	at clojure.lang.Var.invoke(Var.java:419)
	at clojure.lang.AFn.applyToHelper(AFn.java:163)
	at clojure.lang.Var.applyTo(Var.java:532)
	at clojure.main.main(main.java:37)
Caused by: java.lang.RuntimeException: Unable to resolve symbol: bar in this context
	at clojure.lang.Util.runtimeException(Util.java:170)
	at clojure.lang.Compiler.resolveIn(Compiler.java:6766)
	at clojure.lang.Compiler.resolve(Compiler.java:6710)
	at clojure.lang.Compiler.analyzeSymbol(Compiler.java:6671)
	at clojure.lang.Compiler.analyze(Compiler.java:6244)
	... 22 more

real	0m1.804s
user	0m2.210s
sys	0m0.158s

Scala

is not too bad

$ time scala -e 'bar(1)'
/var/folders/51/j0_tv8v57yx88gblmsd4r8sc0000gn/T/scalacmd7251108524490685051.scala:1: error: not found: value bar
bar(1)
^
one error found

real	0m1.079s
user	0m0.744s
sys	0m0.125s

Ruby

<3

$ time ruby -e 'bar 1'
-e:1:in `<main>': undefined method `bar' for main:Object (NoMethodError)

real	0m0.032s
user	0m0.019s
sys	0m0.009s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment