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:* [email protected] <javascript:> <[email protected]
> <javascript:>> on behalf of [email protected] <javascript:> <
> [email protected] <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 [email protected] <javascript:>
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> [email protected] <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 [email protected] <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 [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.