Python with as为什么无法捕获异常

我的python版本基于3.6try:a = open("saijda")except Exception as e:print(e.args)应该是这样写的,然后返回异常(2, 'No such file or directory'),因为我没有这个文件,单纯的捕获异常是这样的,python2.X的版本应该是print e.messagewith as并不会捕获处理异常的,还是需要自己try except来...
Python with as为什么无法捕获异常
with open() as f这样写的意义是自动实现上下文管理,不论with语句块是正常结束还是异常退出之前都会关闭文件f。with不保证捕获其中发生的所有异常。2019-09-26
with在打开文件的这个操作中的作用是保证每次正常打开文件后,不论遇到什么,最后都会执行文件的关闭操作,避免脚本中遗漏。但是他自身并没有抓取异常的处理机制。
with open("asdasdas") as a:
print("打开成功")
do_something()
这段代码的含义,相当于打开了文件“asdasdas”后打印了“打开成功”的字样后,又处理了do_something()这段逻辑。不论do_something()这段逻辑正常执行结束,还是抛出异常,都会保证最终“asdasdas”这个文件都会被关闭。避免因为文件未被关闭而导致的种种问题。

你的代码可以改为以下部分,这样就可以catch到读取文件中的异常了。
try:
with open("asdasdas") as a:
print("打开成功")
except:
print("打开失败")

2019-11-08
我的python版本基于3.6
try:
a = open("saijda")
except Exception as e:
print(e.args)
应该是这样写的,然后返回异常(2, 'No such file or directory'),因为我没有这个文件,单纯的捕获异常是这样的,python2.X的版本应该是print e.message2019-11-16
with as并不会捕获处理异常的,还是需要自己try except来处理异常2019-09-30
你的编译器是什么?2019-10-11
mengvlog 阅读 10 次 更新于 2025-07-19 19:28:22 我来答关注问题0
檬味博客在线解答立即免费咨询

报错相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部