On 8 February 2010 20:11, John R. Williams <shponglesp...@gmail.com> wrote:
> ;; macro-fail.clj
> (defmacro broken [] (/ 0 0))
> (broken)
> [ ... ]
> As you can see, line 3, where the macro is used, appears nowhere in
> the stack trace.

That's because execution never reaches this point, because the (/ 0 0)
bit gets executed at macro expansion time. You'd have to syntax-quote
it to fail at runtime:

(defmacro broken [] `(/ 0 0))

(A regular quote would probably also do.)

Also, note the user$broken ... line in your stack trace -- it does
contain a useful indication of the source of the problem.

Sincerely,
Michał

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to