`ExceptionGroup` doesn't show sub-exceptions
- 主要語言
- Python
- 星號
- 734
- 分支
- 412
- 平均合併
- 1 天 5 小時
- 30 天內合併 PR
- 8
描述
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
| 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
| 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
```
貢獻指南
研究方向
Start by reproducing the Python 3.11 ExceptionGroup example in a Jupyter console and compare normal display with traceback.print_exc(). Trace the kernel's exception-display path; done means raising an ExceptionGroup in the console shows its nested exceptions without explicitly calling traceback.print_exc().
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- python
- 領域
- backend
- Issue 類型
- 缺陷
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 活躍度
- 停滯
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100