-
-
Notifications
You must be signed in to change notification settings - Fork 30.7k
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
gh-102755: Add PyErr_DisplayException(exc) #102756
Conversation
I'm not sure what this means for |
It looks to me as if Does |
It's what prints traceback when an uncaught exception occurs in the repl or in a script, (it's what the default sys.excepthook uses) so I'd hardly call it internal. It is the standard way of producing a standard formatted exception from C. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice cleanup!
@@ -742,7 +742,7 @@ sys_excepthook_impl(PyObject *module, PyObject *exctype, PyObject *value, | |||
PyObject *traceback) | |||
/*[clinic end generated code: output=18d99fdda21b6b5e input=ecf606fa826f19d9]*/ | |||
{ | |||
PyErr_Display(exctype, value, traceback); | |||
PyErr_Display(NULL, value, traceback); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So this will hit the case where PyErr_Display()
stuffs the given traceback onto the exception if the latter doesn't already have one? (Else why not use PyErr_DisplayException()
, right?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Exactly. This is sys.excepthook() which anyone can call so we need to deprecate the case where traceback != value.__traceback__
before we can use PyErr_DisplayException
here. (And eventually go through some kind of migration exercise for excepthook's signature, but let's survive the __exit__
discussion first).
🤖 New build scheduled with the buildbot fleet by @iritkatriel for commit ab84a68 🤖 If you want to schedule another build, you need to add the 🔨 test-with-refleak-buildbots label again. |
All good |
* main: (34 commits) pythongh-102701: Fix overflow in dictobject.c (pythonGH-102750) pythonGH-78530: add support for generators in `asyncio.wait` (python#102761) Increase stack reserve size for Windows debug builds to avoid test crashes (pythonGH-102764) pythongh-102755: Add PyErr_DisplayException(exc) (python#102756) Fix outdated note about 'int' rounding or truncating (python#102736) pythongh-102192: Replace PyErr_Fetch/Restore etc by more efficient alternatives (python#102760) pythongh-99726: Improves correctness of stat results for Windows, and uses faster API when available (pythonGH-102149) pythongh-102192: remove redundant exception fields from ssl module socket (python#102466) pythongh-102192: Replace PyErr_Fetch/Restore etc by more efficient alternatives (python#102743) pythongh-102737: Un-ignore ceval.c in the CI globals check (pythongh-102745) pythonGH-102748: remove legacy support for generator based coroutines from `asyncio.iscoroutine` (python#102749) pythongh-102721: Improve coverage of `_collections_abc._CallableGenericAlias` (python#102722) pythonGH-102653: Make recipe docstring show the correct distribution (python#102742) Add comments to `{typing,_collections_abc}._type_repr` about each other (python#102752) pythongh-102594: PyErr_SetObject adds note to exception raised on normalization error (python#102675) pythongh-94440: Fix issue of ProcessPoolExecutor shutdown hanging (python#94468) pythonGH-100112: avoid using iterable coroutines in asyncio internally (python#100128) pythongh-102690: Use Edge as fallback in webbrowser instead of IE (python#102691) pythongh-102660: Fix Refleaks in import.c (python#102744) pythongh-102738: remove from cases generator the code related to register instructions (python#102739) ...
Fixes #102755.