все 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Сообщить о неточности