鱼C论坛

 找回密码
 立即注册
查看: 1375|回复: 7

[已解决]有关异常捕获中的except

[复制链接]
发表于 2022-4-28 17:07:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
微信截图_20220428170355.png
不是说except后跟什么异常就能捕获该类异常吗?为什么又有变量名错误,又有除零错误,只显示了变量名错误,不显示除零错误呢?
最佳答案
2022-4-28 17:25:48
try:
        print("这里是 A")
        print(a) # <-------- 这里发现错误
        print(10/0) # <-------- 这里被无视了
        print("这里是 B") # <-------- 这里被无视了
except ZeroDivisionError:
        print("除零错误")
except NameError:
        print("变量名错误")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-28 17:20:20 From FishC Mobile | 显示全部楼层
print(a) 在 print(10/0) 上面不是吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-28 17:20:49 | 显示全部楼层
因为捕获到变量名错误后就不往下执行了,所以除零那里是没有执行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-28 17:21:39 From FishC Mobile | 显示全部楼层
只要 try 发现错误,就直接跳去 except 了,不会再继续。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-28 17:25:48 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
try:
        print("这里是 A")
        print(a) # <-------- 这里发现错误
        print(10/0) # <-------- 这里被无视了
        print("这里是 B") # <-------- 这里被无视了
except ZeroDivisionError:
        print("除零错误")
except NameError:
        print("变量名错误")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-4-28 18:54:28 | 显示全部楼层

是不是只捕获某一种错误类型时,程序会报错,但是捕获所有错误类型时,会显示第一种错误类型,之后的不显示?
print("异常出现前")
try:
    print(a)
    print(10/0)
except ZeroDivisionError:
    print("除零错误")
# except NameError:
#     print("变量名错误")
print("异常出现后")
把变量名错误注释掉的话就会报错了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-28 19:50:51 | 显示全部楼层
fledgling 发表于 2022-4-28 18:54
是不是只捕获某一种错误类型时,程序会报错,但是捕获所有错误类型时,会显示第一种错误类型,之后的不显 ...

可以这样说。
但如果你想让两个报错都打印,可以试试代码:(但基本没有人会这样做,因为异常处理不是这样用的)
try:
    print(a) # <-------- 这里发现第一个错误
except NameError:
    print("变量名错误")

try:
    print(10/0) # <-------- 这里发现第二个错误
except ZeroDivisionError:
    print("除零错误")
变量名错误
除零错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-28 20:13:35 | 显示全部楼层
傻眼貓咪 发表于 2022-4-28 19:50
可以这样说。
但如果你想让两个报错都打印,可以试试代码:(但基本没有人会这样做,因为异常处理不是这 ...

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 14:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表