`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