Поймать любую ошибку в Python
можно ли поймать любой ошибка в Python? Мне все равно, какими будут конкретные исключения, потому что все они будут иметь один и тот же резерв.
3 ответов
используя except
сам по себе поймает любое исключение, кроме segfault.
try:
something()
except:
fallback()
вы можете обрабатывать KeyboardInterrupt отдельно, если вам нужно использовать его для выхода из скрипта:
try:
something()
except KeyboardInterrupt:
return
except:
fallback()
есть хороший список основных исключений, которые вы можете поймать здесь. Мне также очень нравится traceback модуль для извлечения стека вызовов из исключения. Попробуй!--3--> или traceback.print_exc()
в обработчике исключений.
try:
# do something
except Exception, e:
# handle it
Для Python 3.x:
try:
# do something
except Exception as e:
# handle it
вы можете также посмотреть на sys.excepthook:
когда исключение вызывается и не перехватывается, интерпретатор вызывает системный.excepthook с тремя аргументами, класс исключения, исключение экземпляр и объект traceback. В интерактивном сеансе это происходит непосредственно перед возвращением элемента управления в приглашение; в Python программа это происходит непосредственно перед выходом программы. Обработка такие исключения верхнего уровня могут быть настроены с помощью назначение другого функция трех аргументов для sys.excepthook.
пример:
def except_hook(type, value, tback):
# manage unhandled exception here
sys.__excepthook__(type, value, tback) # then call the default handler
sys.excepthook = except_hook