鱼C论坛

 找回密码
 立即注册
查看: 1279|回复: 5

[已解决]try finnally为什么要存在

[复制链接]
发表于 2021-2-6 22:32:43 | 显示全部楼层 |阅读模式

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

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

x
经过我自己的上机测试,在try-except检测范围外的代码段仍然会被执行。那么写在try-finnally后面(必须被执行的代码)能不能放到try-except检测范围外?就比如上课讲的f.cloas( ),我认为完全可以放到检测范围外
最佳答案
2021-2-6 22:44:28
个人理解,finally应该是针对try中的代码段来说的,也就是只有执行了try中的代码,finally才有意义。
如果独立出来,那就跟try中的代码无关了。
个人拙见,不知道对不对?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-6 22:44:28 | 显示全部楼层    本楼为最佳答案   
个人理解,finally应该是针对try中的代码段来说的,也就是只有执行了try中的代码,finally才有意义。
如果独立出来,那就跟try中的代码无关了。
个人拙见,不知道对不对?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-6 22:50:16 | 显示全部楼层
本帖最后由 qq1151985918 于 2021-2-6 23:01 编辑

当你测试过我给你的代码你就知道了。try 主要用于可能发生的异常,如果 try 异常就会执行 except ,那么如果 except 也异常呢?
try:
    print(a)
except:
    print(b)
finally:
    print("能打印")
try:
    print(a)
except:
    print(b)

print("不能打印")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 3 反对 0

使用道具 举报

 楼主| 发表于 2021-2-7 09:52:27 | 显示全部楼层
crisfo 发表于 2021-2-6 22:44
个人理解,finally应该是针对try中的代码段来说的,也就是只有执行了try中的代码,finally才有意义。
如果 ...

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

使用道具 举报

 楼主| 发表于 2021-2-7 09:53:10 | 显示全部楼层
qq1151985918 发表于 2021-2-6 22:50
当你测试过我给你的代码你就知道了。try 主要用于可能发生的异常,如果 try 异常就会执行 except ,那么如 ...

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

使用道具 举报

发表于 2021-2-7 17:04:22 | 显示全部楼层
一般情况下,
except可以用来做异常抛出,也可以执行业务代码。
finally用来对代码块做收尾,比如销毁实例,返回值等。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 14:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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