[Python-Dev] exception chaining (original) (raw)
Benjamin Peterson benjamin at python.org
Fri Jan 20 21:56:27 CET 2012
- Previous message: [Python-Dev] exception chaining
- Next message: [Python-Dev] exception chaining
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
2012/1/20 Ethan Furman <ethan at stoneleaf.us>:
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: someop 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.
Where 'the error' is? Aren't you trying to override the current error?
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...
Exactly!
-- Regards, Benjamin
- Previous message: [Python-Dev] exception chaining
- Next message: [Python-Dev] exception chaining
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]