ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Python中的多异常处理

Python中的多异常处理

是的,绝对可以。 Python 提供了多种灵活的方式来处理多种异常,主要有以下 3 种写法:

· 多个 except 分支(最常用):对不同异常执行不同的处理逻辑。

try:# 可能出错的代码pass
except ValueError:print("处理数值错误")
except ZeroDivisionError:print("处理除零错误")
except Exception as e:  # 捕获其他所有异常(通常放最后)print(f"未知错误: {e}")

· 元组批量捕获(最简洁):对多种异常执行相同的处理逻辑。

try:data = int(input())result = 10 / data
except (ValueError, ZeroDivisionError) as e:print(f"输入无效或除零了,错误信息:{e}")

· except*(Python 3.11+):专门处理同时抛出多个异常(ExceptionGroup)的情况,支持按类型分别处理。

⚠️ 重要陷阱(继承顺序):
如果异常有父子关系,子类必须写在父类前面,否则父类会“吃掉”子类,导致子类分支永远不执行。

# ❌ 错误写法(FileNotFoundError 永远捕获不到)
except OSError as e: ...
except FileNotFoundError as e: ...  # ✅ 正确写法(子类在前)
except FileNotFoundError as e: ...  
except OSError as e: ...
返回列表