Calling a hook function every time an Exception is raised.
Let's say I want to be able to log to file every time any exception is raised, anywhere in my program. I don't want to modify any existing code. 

Of course, this could be generalized to being able to insert a hook every time an exception is raised.

Would the following code be considered safe for doing such a thing?


    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();


Calling a hook function every time an Exception is raised.
===

Let's say I want to be able to log to file every time any exception is raised, anywhere in my program. I don't want to modify any existing code. 

Of course, this could be generalized to being able to insert a hook every time an exception is raised.

Would the following code be considered safe for doing such a thing?


    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();

