鱼C论坛

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

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

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

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

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

x
微信截图_20220428170355.png
不是说except后跟什么异常就能捕获该类异常吗?为什么又有变量名错误,又有除零错误,只显示了变量名错误,不显示除零错误呢?
最佳答案
2022-4-28 17:25:48
  1. try:
  2.         print("这里是 A")
  3.         print(a) # <-------- 这里发现错误
  4.         print(10/0) # <-------- 这里被无视了
  5.         print("这里是 B") # <-------- 这里被无视了
  6. except ZeroDivisionError:
  7.         print("除零错误")
  8. except NameError:
  9.         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 | 显示全部楼层    本楼为最佳答案   
  1. try:
  2.         print("这里是 A")
  3.         print(a) # <-------- 这里发现错误
  4.         print(10/0) # <-------- 这里被无视了
  5.         print("这里是 B") # <-------- 这里被无视了
  6. except ZeroDivisionError:
  7.         print("除零错误")
  8. except NameError:
  9.         print("变量名错误")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

是不是只捕获某一种错误类型时,程序会报错,但是捕获所有错误类型时,会显示第一种错误类型,之后的不显示?
  1. print("异常出现前")
  2. try:
  3.     print(a)
  4.     print(10/0)
  5. except ZeroDivisionError:
  6.     print("除零错误")
  7. # except NameError:
  8. #     print("变量名错误")
  9. print("异常出现后")
复制代码

把变量名错误注释掉的话就会报错了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

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

使用道具 举报

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 18:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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