I tackle this issue by replacing go call by a custom macro gotry that will 
catch exception inside the go block


(defmacro deftry [func-name args & body]
  (let [body-with-go-try (clojure.walk/prewalk-replace '{go gotry} body)]
      `(defn ~func-name ~args
          (try ~@body-with-go-try
               (catch js/Object e#
                 (notify-error e#))))))

(defmacro gotry [& body]
  `(go
     (try
        ~@body
          (catch js/Object e#
            (notify-error e#)))))

What do you think about that ?

Le dimanche 24 août 2014 10:30:23 UTC+3, Yehonathan Sharvit a écrit :
> I would like to catch exceptions that occur inside a go block. I need to 
> catch the exceptions from outside the go block.
> 
> I tried to write this piece of code but it didn't work. The exception was not 
> caught.
> 
> (try
>   (go 
>    (throw (js/Error."My Exception in go block")))
>   (catch js/Object e
>     (println "exception caught: " e)))
> 
> 
> Any idea?

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to