现有代码包含许多except
块,可以抑制异常。
def div(x, y):
result = None
try:
result = x / y
except:
pass
return result
print div(5,0)
我想装饰except
块,以便在不更改原始代码的情况下打印异常。这在Python中是否可行?
答案 0 :(得分:1)
不,这是不可能的。
在Python中,只有对象可以被装饰。
尝试/除了块是compound statements之一。语句不能用作参数 - 因此你不能写这样的装饰器。
此外,如果异常被静音,装饰器(或语句之外的任何其他代码)将不知道引发异常的事实。