Benjamin Peterson wrote: > 2012/1/20 Ethan Furman <ethan at stoneleaf.us>: >> Summary: >> >> Exception Chaining is cool, unless you are writing libraries that want to >> transform from Exception X to Exception Y as the the previous exception >> context is unnecessary, potentially confusing, and cluttery (yup, just made >> that word up!). >> >> For all the gory details, see http://bugs.python.org/issue6210. >> >> I'm going to attempt a patch implementing MRAB's suggestion: >> >> try: >> some_op >> except ValueError: >> raise as OtherError() # `raise` keeps context, `raise as` does not > > I dislike this syntax. Raise what as OtherError()? I think the "raise > x from None" idea is preferable, since it indicates you are nulling > the context. The optimal solution would be to have "raise X > nocontext", but that would obviously require another keyword... Raise 'the error' as OtherError. The problem I have with 'raise x from None' is it puts 'from None' clear at the end of line -- not a big deal on this very short example, but when you have actual text it's not as obvious: except SomeError(): raise SomeOtherError('explanatory text with actual %data to help track down the problem' % data) from None Of course, I suppose that same issue exists with the 'raise x from exc' syntax, and 'from None' certainly matches that better... ~Ethan~
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4