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

为何自定义Exception子类MyException未被对应except子句捕获?

问题核心原因

你自定义的MyException是独立于Python内置异常体系的自定义异常类,只有主动执行raise MyException()的时候才会触发对应except分支的捕获逻辑。
你try代码块中执行1/0触发的是Python内置的ZeroDivisionError(除零错误),和你声明的MyException没有任何继承关联,自然无法被对应分支捕获,异常就会直接向外抛出。

常见修复方案

根据你的实际需求可以选对应的修改方式:

  • 如果你需要捕获除零错误,直接将except后的异常类型改为ZeroDivisionError即可
class MyException(Exception):
    pass

try:
    1/0
except ZeroDivisionError:
    print('something') 
  • 如果你需要测试自定义异常的捕获逻辑,在try块中主动抛出自定义异常即可
class MyException(Exception):
    pass

try:
    raise MyException()
except MyException:
    print('something') 
  • 如果你需要兜底捕获所有异常,可以改为捕获Exception类(不推荐生产环境无差别使用,会掩盖未知的程序错误)
class MyException(Exception):
    pass

try:
    1/0
except Exception:
    print('something') 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:18:03