I figured a common reason for error messages to disappear is when there is 
another Exception inside of the catch block, so the catch block itself dies 
without doing anything. 

I had copy-and-pasted this from somewhere, without looking at it much:

   (catch Exception e
     (println e)
     (stack/parse-exception e)
     (throw (ex-info "The app has died!")))

It took me awhile before I saw this: 

:type clojure.lang.ArityException
   :message Wrong number of args (1) passed to: core/ex-info
   :at [clojure.lang.AFn throwArity AFn.java 429]}]

Looking here reveals that there is no one argument version of ex-info:

https://clojuredocs.org/clojure.core/ex-info

My fault, obviously, for being careless when mixing different kinds of 
error reporting. 


On Monday, October 9, 2017 at 2:59:35 PM UTC-4, Sean Corfield wrote:
>
> Timbre has a logged-future macro that you can use instead of future so 
> that exceptions are automatically logged.
>
>  
>
> Sean Corfield -- (970) FOR-SEAN -- (904) 302-SEAN
> An Architect's View -- http://corfield.org/
>
> "If you're not annoying somebody, you're not really alive."
> -- Margaret Atwood
>
>  
> ------------------------------
> *From:* clo...@googlegroups.com <javascript:> <clo...@googlegroups.com 
> <javascript:>> on behalf of lawrence...@gmail.com <javascript:> <
> lawrence...@gmail.com <javascript:>>
> *Sent:* Monday, October 9, 2017 11:23:05 AM
> *To:* Clojure
> *Subject:* Re: Can slingshot/try+ and then catch Object really catch any 
> error? 
>  
> MatchingSocks, thanks for that. I think the pattern I followed everywhere 
> was: 
>
> (future
>   (slingshot/try+
>      ;;; some code
>     (catch Object o
>        (println o))))
>
> So I think I do catch everything inside of each future that I launch. But 
> I will check again. Perhaps I missed one somewhere.
>
>
> On Monday, October 9, 2017 at 8:12:33 AM UTC-4, Matching Socks wrote: 
>>
>> The linked page 
>> https://stuartsierra.com/2015/05/27/clojure-uncaught-exceptions also 
>> says "Another wrinkle: exceptions inside a future are always caught by the 
>> Future. The exception will not be thrown until something calls Future.get 
>> (deref in Clojure)."  So you would need to review the pattern of "(try 
>> (future (catch (throw".
>>
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clo...@googlegroups.com <javascript:>
> Note that posts from new members are moderated - please be patient with 
> your first post.
> To unsubscribe from this group, send email to
> clojure+u...@googlegroups.com <javascript:>
> 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+u...@googlegroups.com <javascript:>.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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