Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

`ExceptionGroup` doesn't show sub-exceptions

未关闭
#1,149 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
python
领域
backend

调研方向

首先,在 Jupyter 控制台中复现 Python 3.11 的 ExceptionGroup 示例,并将正常显示与 traceback.print_exc() 进行比较。跟踪内核的异常显示路径;完成的标准是,在控制台中引发 ExceptionGroup 时,无需显式调用 traceback.print_exc() 就能显示其嵌套异常。

由索引模型根据 Issue 内容生成。

描述

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
主要语言
Python
星标
734
派生
411
平均合并
1 天 2 小时
30 天内合并 PR
9

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

ipython/ipykernel 的其他 Issue

查看 ipython/ipykernel 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。