New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PEP 678: Make it possible to enrich an exception's error message #89770
Comments
|
The requirement comes from Hypothesis, see It is necessary there to add a note to an exception describing which test case it comes from. The note should be printed by __str__ of this exception. class Explanation(Exception):
__module__ = "builtins"
def __str__(self) -> str:
return f"\n{self.args[0]}"try: # Ideally something more like:
e.__note__ = msg
raise |
|
This code shows my current best workaround based on a wrapper exception, with the traceback below annotating the additional details that I'd prefer to omit for clarity: $ python example.py
Traceback (most recent call last):
File "example.py", line 8, in <module>
raise AssertionError(why)
AssertionError: Failed!
# These lines are
The above exception was the direct cause of the following exception: # confusing for new
# users, and they
Traceback (most recent call last): # only exist due
File "example.py", line 10, in <module> # to implementation
raise Explanation(msg) from e # via the Explanation
Explanation: # wrapper type :-(
You can reproduce this error by ...
...The motivation for this is that we'd like to use ExceptionGroup to indicate that |
|
bpo-28953 is another use case for this feature. |
|
Reopening to implement PEP 678. |
|
The implementation is complete, I am leaving this open for one more documentation PR (but that should not block the release). |


Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: