草庐IT

Try-finally

全部标签

python - "with"如何比 try/catch 在 Python 中打开文件更好?

我知道with语句可以帮助您转这个:try:f=open(my_file)do_stuff_that_fails()except:passfinally:f.close()进入:withopen(my_file)asf:do_stuff_that_fails()但是这样更好吗?您仍然必须处理无法打开文件的情况(例如提示用户告诉他他没有权限),因此实际上您将拥有:try:withopen(my_file)asf:do_stuff_that_fails()except(IOError,OSError,Failure)ase:do_stuff_when_it_doesnt_work()相当于

python - 一旦进入 finally block ,如何确定是否引发了异常?

在finally子句中是否可以判断是否存在异常?比如:try:funkycodefinally:if???:print('thefunkycoderaised')我想让这样的东西更干燥:try:funkycodeexceptHandleThis:#handleitraised=TrueexceptDontHandleThis:raised=Trueraiseelse:raised=Falsefinally:logger.info('funkycoderaised%s',raised)我不喜欢它需要捕获一个您不打算处理的异常,只是为了设置一个标志。由于一些comments在MCVE中要求

python - 一旦进入 finally block ,如何确定是否引发了异常?

在finally子句中是否可以判断是否存在异常?比如:try:funkycodefinally:if???:print('thefunkycoderaised')我想让这样的东西更干燥:try:funkycodeexceptHandleThis:#handleitraised=TrueexceptDontHandleThis:raised=Trueraiseelse:raised=Falsefinally:logger.info('funkycoderaised%s',raised)我不喜欢它需要捕获一个您不打算处理的异常,只是为了设置一个标志。由于一些comments在MCVE中要求

python - 捕获异常并继续 Python 中的 try block

异常发生后能否返回执行tryblock?例如:try:do_smth1()except:passtry:do_smth2()except:pass对比try:do_smth1()do_smth2()except:???#magicwordtoproceedtodo_smth2()iftherewasexceptionindo_smth1 最佳答案 不,你不能那样做。这就是Python的语法。一旦你因为异常退出了try-block,就没有办法再进去了。那么for循环呢?funcs=do_smth1,do_smth2forfuncinf

python - 捕获异常并继续 Python 中的 try block

异常发生后能否返回执行tryblock?例如:try:do_smth1()except:passtry:do_smth2()except:pass对比try:do_smth1()do_smth2()except:???#magicwordtoproceedtodo_smth2()iftherewasexceptionindo_smth1 最佳答案 不,你不能那样做。这就是Python的语法。一旦你因为异常退出了try-block,就没有办法再进去了。那么for循环呢?funcs=do_smth1,do_smth2forfuncinf

python 尝试:except:finally

#Opennewfiletowritefile=Nonetry:file=open(filePath,'w')exceptIOError:msg=("Unabletocreatefileondisk.")file.close()returnfinally:file.write("HelloWorld!")file.close()上面的代码是从一个函数中提取的。其中一个用户的系统正在报错:file.write("HelloWorld!")错误:AttributeError:'NoneType'objecthasnoattribute'write'问题是,如果python无法打开给定的文件

python 尝试:except:finally

#Opennewfiletowritefile=Nonetry:file=open(filePath,'w')exceptIOError:msg=("Unabletocreatefileondisk.")file.close()returnfinally:file.write("HelloWorld!")file.close()上面的代码是从一个函数中提取的。其中一个用户的系统正在报错:file.write("HelloWorld!")错误:AttributeError:'NoneType'objecthasnoattribute'write'问题是,如果python无法打开给定的文件

python - else 和 finally 在异常处理中的目的

异常处理的else和finally部分是否多余?比如下面两个代码片段有什么区别吗?try:foo=open("foo.txt")exceptIOError:print("error")else:print(foo.read())finally:print("finished")和try:foo=open("foo.txt")print(foo.read())exceptIOError:print("error")print("finished")更一般地说,else的内容不能一直移动到try中,finally的内容不能只是被移到try/catchblock之外?如果是这样,else和f

python - else 和 finally 在异常处理中的目的

异常处理的else和finally部分是否多余?比如下面两个代码片段有什么区别吗?try:foo=open("foo.txt")exceptIOError:print("error")else:print(foo.read())finally:print("finished")和try:foo=open("foo.txt")print(foo.read())exceptIOError:print("error")print("finished")更一般地说,else的内容不能一直移动到try中,finally的内容不能只是被移到try/catchblock之外?如果是这样,else和f

python - 我应该如何将 try/except 放在一行中?

在python中有没有办法将try/except变成单行?类似...b='somevariable'a=c|b#trystatementgoeshere其中b是已声明的变量,而c不是...所以c会抛出错误而a会变成b... 最佳答案 在python3中你可以使用contextlib.suppress:fromcontextlibimportsuppressd={}withsuppress(KeyError):d['foo'] 关于python-我应该如何将try/except放在一行中?