#python #exception
#python #исключение
Вопрос:
https://www.programiz.com/python-programming/exceptions
В Python есть список исключений, и я пытаюсь составить список (или набор) имен исключений.
Я мог бы просто жестко запрограммировать имена, но есть ли способ как-то сделать это программно? Например, импортировать класс exception и получить все эти типы исключений и поместить их в список строк?
Комментарии:
1. AFAIK: docs.python.org/3/library/exceptions.html
2. Это может помочь узнать, что вы собираетесь делать с этим списком. Не забывайте, что импортированные модули и пользователи могут определять свои собственные подклассы исключений.
Ответ №1:
Чтобы получить список встроенных исключений (не определяемых пользователем), вы можете сделать это:
import builtins
list_of_exception_names = [
name for name, value in builtins.__dict__.items()
if isinstance(value, type) and issubclass(value, BaseException)
]
Комментарии:
1. Этот код не будет работать внутри модуля.
__builtins__
иногда является dict, а не модулем, и в этом случае__builtins__.__dict__
доступ завершается ошибкой. Вы всегда должны использовать модульbuiltins
or__builtin__
, а не__builtins__
детали реализации.3. @user2357112 спасибо за ваши комментарии, улучшил мой ответ.