try:
something here
except:
print('the whatever error occurred.')
Run Code Online (Sandbox Code Playgroud)
如何在except:块中打印错误/异常?
是else和finally异常处理部分多余的?例如,以下两个代码段之间有什么区别吗?
try:
foo = open("foo.txt")
except IOError:
print("error")
else:
print(foo.read())
finally:
print("finished")
Run Code Online (Sandbox Code Playgroud)
和
try:
foo = open("foo.txt")
print(foo.read())
except IOError:
print("error")
print("finished")
Run Code Online (Sandbox Code Playgroud)
更一般地说,不能将内容else总是移入try,而不能将内容finally移到try/catch块之外?如果是这样,是什么目的else和finally?它只是为了增强可读性吗?
可能重复:
else的目的,最后是异常处理
我想理解为什么声明中finally存在该条款try/except.我理解它的作用,但很明显,如果它在语言中占有一席之地,我会遗漏一些东西.具体来说,在finally字段中编写一个子句与在try/except语句之外写一个子句之间的区别是什么?
什么时候finally在try..except块中使用有意义?只是在try..except这样做之后才列出语句吗?
两者有什么区别?
try:
result = 100 / 0
except ZeroDivisionError:
print("division by zero!")
else:
print("result is", result)
finally:
print("final statement")
Run Code Online (Sandbox Code Playgroud)
与
try:
result = 100 / 0
except ZeroDivisionError:
print("division by zero!")
else:
print("result is", result)
print("final statement")
Run Code Online (Sandbox Code Playgroud) 在此链接(https://docs.python.org/2/tutorial/errors.html#defining-clean-up-actions)下面说:
在离开try语句之前总是执行finally子句,无论是否发生了异常.
代码1:
try:
print "Performing an action which may throw an exception."
except Exception, error:
print "An exception was thrown!"
print str(error)
else:
print "Everything looks great!"
finally:
print "Finally is called directly after executing the try statement whether an exception is thrown or not."
Run Code Online (Sandbox Code Playgroud)
输出1:
Performing an action which may throw an exception.
Everything looks great!
Finally is called directly after executing the try statement whether an exception is thrown or not.
Run Code Online (Sandbox Code Playgroud)
代码2:
try:
print "Performing …Run Code Online (Sandbox Code Playgroud)