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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.