2012/1/20 Ethan Furman <et...@stoneleaf.us>: > 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.
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 _______________________________________________ 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