Ответ 1
Вы ищете sys.excepthook:
sys.excepthook(тип, значение, трассировка)
Эта функция выводит заданную трассировку и исключение в sys.stderr.
Когда исключение возбуждается и не получается, интерпретатор вызывает sys.excepthook с тремя аргументами, классом исключений, экземпляром исключения и объектом traceback. В интерактивном сеансе это происходит непосредственно перед возвратом элемента управления в приглашение; в программе Python это происходит непосредственно перед выходом программы. Обработка таких исключений верхнего уровня может быть настроена путем назначения другой функции с тремя аргументами в sys.excepthook.