что может подниматься внутри него (и исключения, и KeyboardInterrupt, и что угодно еще). При этом мне нужно в логгере записать, что именно было поднято. С отловом голого исключения это просто:
try:
foo()
except Exception as exc:
logger.exception('Failed: %s', type(exc))
Как отлавливать, если отлавливаем вообще все?
try:
foo()
except:
??? # что скормить логгеру здесь?
except BaseException as exc:
А, все остальное от BaseException наследует? Не знал. Благодарю.
есть полезная иллюстрация: https://docs.python.org/3/library/exceptions.html#exception-hierarchy
Полезная, благодарю. Закину в закладки.
Обсуждают сегодня