ipykernel icon indicating copy to clipboard operation
ipykernel copied to clipboard

`ExceptionGroup` doesn't show sub-exceptions

Open evhub opened this issue 2 years ago • 0 comments

As seen below, Python 3.11 ExceptionGroup objects don't show sub-exceptions when displayed; explicitly catching and using traceback.print_exc() is required to see them:

❯ jupyter console

In [1]: exc = ExceptionGroup("derp", [Exception("herp")])

In [2]: raise exc
---------------------------------------------------------------------------
ExceptionGroup                            Traceback (most recent call last)
Cell In[2], line 1
----> 1 raise exc

ExceptionGroup: derp (1 sub-exception)

In [3]: try:
   ...:     raise exc
   ...: except:
   ...:     import traceback; traceback.print_exc()
   ...:
  + Exception Group Traceback (most recent call last):
  |   File "C:\Users\evanj\AppData\Local\Temp\ipykernel_20028\3102285775.py", line 2, in <module>
  |     raise exc
  |   File "C:\Users\evanj\anaconda3\Lib\site-packages\IPython\core\interactiveshell.py", line 3505, in run_code
  |     exec(code_obj, self.user_global_ns, self.user_ns)
  |   File "C:\Users\evanj\AppData\Local\Temp\ipykernel_20028\3429297078.py", line 1, in <module>
  |     raise exc
  | ExceptionGroup: derp (1 sub-exception)
  +-+---------------- 1 ----------------
    | Exception: herp
    +------------------------------------

Versions:

Python 3.11.4
ipykernel                     6.19.2
ipython                       8.12.0
jupyter                       1.0.0
jupyter_client                7.4.9
jupyter-console               6.6.3
jupyter_core                  5.3.0
jupyter-events                0.6.3
jupyter-server                1.23.4
jupyter_server_fileid         0.9.0
jupyter_server_ydoc           0.8.0

evhub avatar Sep 23 '23 22:09 evhub