我在 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 在逻辑上尽可能短,这样您就有更好的机会以适当的本地化方式处理错误。
