假设我希望每次在程序中的任何位置引发任何异常时都能够记录到文件中。我不想修改任何现有代码。
当然,这可以推广到每次引发异常时都能够插入一个钩子。
下面的代码做这样的事情被认为是安全的吗?
class MyException(Exception):
def my_hook(self):
print('---> my_hook() was called');
def __init__(self, *args, **kwargs):
global BackupException;
self.my_hook();
return BackupException.__init__(self, *args, **kwargs);
def main():
global BackupException;
global Exception;
BackupException = Exception;
Exception = MyException;
raise Exception('Contrived Exception');
if __name__ == '__main__':
main();
如果你想登录uncaught例外情况,只需使用系统异常钩子 http://docs.python.org/library/sys.html#sys.excepthook.
我不确定我是否看到了日志记录的价值all引发异常,因为许多库会在内部引发/捕获您可能不关心的事情的异常。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)