假设我希望每次在我的程序中的任何地方引发任何异常时都能记录到文件.我不想修改任何现有代码.
当然,这可以推广到每次引发异常时都能插入一个钩子.
以下代码是否可以被认为是安全的做这样的事情?
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();
Run Code Online (Sandbox Code Playgroud)