[Python-Dev] PEP 409 and the stdlib (original) (raw)
Nick Coghlan ncoghlan at gmail.com
Tue May 21 13:23:01 CEST 2013
- Previous message: [Python-Dev] PEP 409 and the stdlib
- Next message: [Python-Dev] PEP 409 and the stdlib
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Tue, May 21, 2013 at 5:17 PM, Hrvoje Niksic <hrvoje.niksic at avl.com> wrote:
On 05/20/2013 05:15 PM, Ethan Furman wrote:
1) Do nothing and be happy I use 'raise ... from None' in my own libraries 2) Change the wording of 'During handling of the above exception, another exception occurred' (no ideas as to what at the moment) The word "occurred" misleads one to think that, during handling of the real exception, an unrelated and unintended exception occurred. This is not the case when the "raise" keyword is used. In that case, the exception was intentionally converted from one type to another. For the "raise" case a wording like the following might work better: The above exception was converted to the following exception: ... That makes it clear that the conversion was explicit and (hopefully) intentional, and that the latter exception supersedes the former.
This ship sailed long ago (it was covered by the original exception chaining spec in PEP 3134). If you want to deliberately replace an exception while retaining the full traceback, you use "raise X from Y", and the intro text will change to something like "This exception was the direct cause of the following exception:"
This thread is about the case where you want to use "raise X from None" to suppress the display of the original exception completely, which is a new capability in Python 3.3. So whenever we consider changing the standard library, we should also look at the explicit chaining option, particularly when the original exception may have happened inside a user provided callback (including method calls)
Cheers, Nick.
-- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
- Previous message: [Python-Dev] PEP 409 and the stdlib
- Next message: [Python-Dev] PEP 409 and the stdlib
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]