Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32k
Closed
Description
classMyEG(ExceptionGroup):"""Holds BaseExceptions without itself being a BaseException."""oops=MyEG("oops", [KeyboardInterrupt()])assertisinstance(oops,Exception)assertnotisinstance(oops.exceptions[0],Exception)
I believe that this is a bug tracing to the period whenPEP-654 did not intend(Base)ExceptionGroup
to be usable as a parent class; and I think a sufficient fix would be to replace the type-equality check with an isinstance check in:
Lines 740 to 744 inbc390dd
if (cls==PyExc_ExceptionGroup) { | |
if (nested_base_exceptions) { | |
PyErr_SetString(PyExc_TypeError, | |
"Cannot nest BaseExceptions in an ExceptionGroup"); | |
gotoerror; |
cc@iritkatriel; raised viaagronholm/exceptiongroup#40 (comment)
Linked PRs
- gh-99553: fix bug where an ExceptionGroup subclass can wrap a BaseException #99572
- [3.11] gh-99553: fix bug where an ExceptionGroup subclass can wrap a BaseException (GH-99572) #99580
- gh-99553: add tests for ExceptionGroup wrapping #99615
- [3.11] gh-99553: add tests for ExceptionGroup wrapping (GH-99615) #103435