我在 try: except KeyError: pass
block 中有一个语句 block ,想知道如何让 Python 尝试在抛出异常的行之后执行代码。
例如
try:
print "entering try block"
print this_var_does_not_exists
print "past exception"
except:
pass
我想尝试打印 "past exception"
。
当我运行上面的代码时,它只打印'entering try block'
最佳答案
Python 不允许您重新输入失败的 block 。相反,您可以制作一个嵌套的 try
block :
try:
print "before"
try:
print d['not-exist']
except KeyError:
pass
print "after"
except OtherError:
print "OtherError"
请注意,您通常可以使用 .get
避免 KeyError
:
try:
x = d['key']
except KeyError:
x = 0
相当于
x = d.get('key', 0)
一般,尝试使您的 try
block 在逻辑上尽可能短,这样您就有更好的机会以适当的本地化方式处理错误。
关于 python 尝试: except: pass; on multi line try statements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19081515/