Скажем, я хочу иметь возможность записывать в файл каждый раз, когда любое исключение возникает в моей программе. Я не хочу изменять какой-либо существующий код.
Конечно, это может быть обобщено на возможность вставлять крючок каждый раз, когда возникает исключение.
Будет ли считаться безопасным для такого действия следующий код?
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();