See
http://groups.google.com/group/clojure/web/errors.diff
The linked patch improves the compiler stack traces in two ways: It
prints the name of the files being loaded, and it prints the line
number and source where the error is located. See below for an example
of the new output.
Allen
Caused by: java.lang.Exception: While loading /Users/arohner/
Programming/foo/start.clj
at clojure.lang.Compiler.load(Compiler.java:4212)
at clojure.lang.Compiler.loadFile(Compiler.java:4169)
... 6 more
Caused by: java.lang.Exception: While loading foo/dataset.clj
at clojure.lang.Compiler.load(Compiler.java:4212)
at clojure.lang.RT.loadResourceScript(RT.java:360)
at clojure.lang.RT.loadResourceScript(RT.java:347)
at clojure.lang.RT.loadResourceScript(RT.java:339)
at clojure.load__1753$fn__1755.invoke(boot.clj:3234)
at clojure.load__1753.doInvoke(boot.clj:3233)
at clojure.lang.RestFn.invoke(RestFn.java:413)
at clojure.load_one__1716.invoke(boot.clj:3080)
at clojure.load_lib__1736.doInvoke(boot.clj:3117)
at clojure.lang.RestFn.applyTo(RestFn.java:147)
at clojure.apply__135.doInvoke(boot.clj:364)
at clojure.lang.RestFn.invoke(RestFn.java:443)
at clojure.load_libs__1740.doInvoke(boot.clj:3143)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.apply__135.doInvoke(boot.clj:364)
at clojure.lang.RestFn.invoke(RestFn.java:443)
at clojure.require__1744.doInvoke(boot.clj:3202)
at clojure.lang.RestFn.invoke(RestFn.java:413)
at user.eval__3150.invoke(start.clj:5)
at clojure.lang.Compiler.eval(Compiler.java:3891)
at clojure.lang.Compiler.load(Compiler.java:4206)
... 7 more
Caused by: java.lang.Exception: Exception on line 95: (def question-
map (ref foo.dataset/load-question-map connect))
at clojure.lang.Compiler.eval(Compiler.java:3904)
at clojure.lang.Compiler.load(Compiler.java:4206)
... 27 more
Caused by: java.lang.ClassCastException:
org.postgresql.jdbc3.Jdbc3Connection
at clojure.ref__544.invoke(boot.clj:1057)
at clojure.lang.AFn.applyToHelper(AFn.java:186)
at clojure.lang.AFn.applyTo(AFn.java:175)
at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:2589)
at clojure.lang.Compiler$DefExpr.eval(Compiler.java:282)
at clojure.lang.Compiler.eval(Compiler.java:3898)
... 28 more