I was trying to code a 'with-connection' macro to deal with JDBC
connections and I stumbled upon something that looks like a compiler
error.
It seems the compilers emits invalid bytecode for constructs such as:
(try nil
(finally (try nil
(catch Exception e (println "error")))))
I get a java.lang.VerifyError: Inconsistent stack height 0 != 1
By comparison, the following works:
(try nil
(finally (try nil
(finally (println "error")))))
BTW, try/catch/finally/throw are not currently documented on
clojure.org. Are they meant for external usage?