I tried to write a macro that wraps the code a function with a try/catch
statement. It works fine for regular functions but it doesn't work for
multimethods.  I understand the reason, but I don't know how to fix it.

Here is my code:

(defmacro deftry [name args & body] "
https://groups.google.com/forum/#!topic/clojurescript/To0AnQVC3lg";
  `(defn ~name ~args
     (try ~@body
       (catch Error e#
         (println "error caught:" e#)))))


Usage:
1. regular function => it works fine

(deftry foo []
  (throw (Error. "foo")))


2. multimethods => it breaks
(deftry foo
    ([a] 3)
    ([] 5))

-- 
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
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to