You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中`except*`语法(ast模块TryStar)是什么?

关于Python中except*(TryStar)特性的详解

一、特性名称

官方在AST模块里对应的节点是TryStar,语法层面的关键字是except*,社区里一般直接称它为except-star,或者直接叫except*语法,不存在"except-glob""try-star"这类约定俗成的称呼。

二、except*是什么?

它是Python专门为处理**异常组(Exception Group)**设计的语法,属于PEP 654的核心内容,从Python 3.11版本开始正式落地支持。

三、核心用途

普通的except只能捕获单个异常,而except*的作用是从一个**异常组(ExceptionGroup)**中,筛选出所有匹配指定类型的异常进行处理;未被匹配到的异常会被重新打包成新的异常组,继续向上传播。

举个实际示例:

try:
    raise ExceptionGroup("批量异常", [
        ValueError("非法参数"),
        TypeError("类型不匹配"),
        ValueError("数值超出范围")
    ])
except* ValueError:
    print("处理所有值错误类型的异常")

运行这段代码时,except* ValueError会捕获异常组里的两个ValueError,剩下的TypeError会被重新包装成新的异常组抛出。

四、状态说明

这个特性并没有被弃用,是Python 3.11及以后版本正式支持的功能,主要用于简化多异常场景(比如异步任务批量出错)的处理逻辑。


内容的提问来源于stack exchange,提问作者1j01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 23:37:13