Python Glossary English

все Python 3Исключенияисключение

Exception

встроенные исключения

Базовый класс всех обычных (прикладных) исключений. `except Exception` — типовой перехват, не задевающий SystemExit/KeyboardInterrupt.

Синтаксис

raise Exception

except Exception ловит и настоящую ошибку данных, и вашу опечатку: NameError, AttributeError, TypeError — тоже его потомки, поэтому широкий перехват превращает баг в тихо проглоченное сообщение. Пишите конкретный класс (ValueError, KeyError, ZeroDivisionError), а Exception оставляйте на самый верхний уровень программы, где вы логируете и завершаетесь. От голого except: он отличается тем, что не трогает SystemExit, KeyboardInterrupt и GeneratorExit — они наследуются от BaseException, и Ctrl+C по-прежнему прерывает программу.

Примеры

try:
    raise Exception
except Exception as e:
    print(type(e).__name__)   # → Exception

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности