> Interesting library.
> 
> It seems that I cannot have a action finish with an error unless I raise an
> exception. That seems limiting, there are lots of cases where I have code
> that hits an error condition and does not raise an exception. For example
> an HTTP request that gets a non 200 status.
> 
> Have I missed something?

You don't have to raise an exception, though the current API requires you to 
create an exception instance:
---

from eliot import start_action

action = start_action(action_type="http_request"):
with action.context():
    response = http_request()
    if response.code == 200:
        action.finish()
        return response.json
    else:
        action.finish(HTTPError(code=response.code))
        return None 

---
The Twisted APIs for Eliot likewise support Deferreds using a DeferredContext 
object, again with no need to raise an exception:

https://eliot.readthedocs.io/en/stable/generating/twisted.html#actions-and-deferreds
    
-Itamar    

_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to