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.