Agent2 release 0.2.1 now wraps exceptions passed as values in a vector 
marked with the metadata flag :wrapped. The request-call method can now 
distinguish between exceptions thrown by a request (and rethrows them) and 
exceptions used as responses (and unwraps them before returning 
them). https://github.com/laforge49/agent2/releases

I appreciate your advice Frances. Just too much for me to deal with all at 
one time, this being my first release to Clojars and all.

On Friday, August 7, 2015 at 5:24:24 PM UTC-4, Francis Avila wrote:
>
> Huh, I was sure I had done this before, but I misremembered, I was using 
> my own promise that rethrew Throwable instances on deref (and it was in 
> clojurescript!)
>
> Clojure promises have no notion of failure, only realized/not-realized. 
> You need to deliver a sentinel type or value and check for it on deref, or 
> implement your own promise type which does it for you. (It's not that hard: 
> https://github.com/clojure/clojure/blob/clojure-1.7.0/src/clj/clojure/core.clj#L6803
>  
> )
>
> On Friday, August 7, 2015 at 4:09:39 PM UTC-5, William la Forge wrote:
>>
>> Sorry, I meant to ask how to fail with a promise? It seems that there is 
>> no fail method.
>>
>> On Friday, August 7, 2015 at 4:52:47 PM UTC-4, Francis Avila wrote:
>>>
>>> Futures automatically capture exceptions raised in their bodies and 
>>> reraise them when the future is derefed. Promises also throw exceptions 
>>> when derefed.
>>>
>>> Unlike promises, futures are created with the code that delivers their 
>>> value, so calling fail and deliver explicitly on a future makes no sense.
>>>
>>> Think of futures as a thin wrapper around a promise which spawns a 
>>> thread, runs the code, and to the wrapped promise either delivers the 
>>> result of the code or calls (fail private-promise raised-exception) for you.
>>>
>>> On Friday, August 7, 2015 at 2:14:30 PM UTC-5, William la Forge wrote:
>>>>
>>>> A future fails when it throws an exception. How to do that with a 
>>>> future?
>>>>
>>>> It looks like (fail future exception) does not do the trick: 
>>>> http://dev.clojure.org/display/design/Promises
>>>>
>>>>

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