Benjamin Peterson wrote:
2012/1/20 Ethan Furman <et...@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~
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com