鱼C论坛

 找回密码
 立即注册
查看: 875|回复: 6

异常处理问题

[复制链接]
发表于 2019-8-1 10:44:05 | 显示全部楼层 |阅读模式

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

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

x
try :
   
    f = open('写入文件.txt','w')
    print(f.write('文件写入'))
    sum = 1 +'1'
except OSError as reason:
    print('文件出错。出错原因:'+str(reason))
except TypeError as reason:
    print('文件出错。出错原因:'+str(reason))
f.close()

try :
   
    f = open('写入文件.txt','w')
    print(f.write('文件写入'))
    sum = 1 +'1'
except OSError as reason:
    print('文件出错。出错原因:'+str(reason))
except TypeError as reason:
    print('文件出错。出错原因:'+str(reason))
finally:
    f.close()
有什么区别
不管出错不出错只要把文件关闭就可以了啊。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-8-1 11:05:58 | 显示全部楼层
如果出错的话,上面那个关闭语句是执行不了的。所以没用,你可以测试一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-1 11:55:05 | 显示全部楼层
aiqinghuilaidao 发表于 2019-8-1 11:05
如果出错的话,上面那个关闭语句是执行不了的。所以没用,你可以测试一下

测试了,是可以写入的,所以我才发帖的
个人觉得因为f.close()写在了最外层,结束try后执行所以内存还没有删除里面的内容
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-1 11:57:54 | 显示全部楼层
这个应该是一样的,不一样的是把
  1. f.close()
复制代码
写在try里面的情况
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-1 13:55:24 | 显示全部楼层
前一个你出的错被你捕获了,但是如果没被你捕获的异常就写不进去了,下面那个却可以
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-2 10:58:38 | 显示全部楼层
dragenix 发表于 2019-8-1 11:55
测试了,是可以写入的,所以我才发帖的
个人觉得因为f.close()写在了最外层,结束try后执行所以内存还没 ...

亲,你这边可以写入是因为你假设的异常都被捕获了呢,我的意思是如果发生你没有捕获到的异常,那么系统就会出错,如果使用第一个并不会跳转执行到f.close,系统就会提示异常退出。如果使用第二个finally,就会在执行f.close()后退出。可以试下故意让程序出现,没有捕获异常的错误。这样就会很明显
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-2 11:00:25 | 显示全部楼层
dragenix 发表于 2019-8-1 11:55
测试了,是可以写入的,所以我才发帖的
个人觉得因为f.close()写在了最外层,结束try后执行所以内存还没 ...

亲,你这边可以写入是因为你假设的异常都被捕获了呢,我的意思是如果发生你没有捕获到的异常,那么系统就会出错,如果使用第一个并不会跳转执行到f.close,系统就会提示异常退出。如果使用第二个finally,就会在执行f.close()后退出。可以试下故意让程序出现,没有捕获异常的错误。这样就会很明显
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-17 08:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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