Как установить аргументы при создании исключения? Где я могу найти список аргументов, доступных для каждого подкласса Exception
? Каковы лучшие практики?
Например, если я знаю, что файл не существует, как вызвать исключение FileNotFoundError(missing_file)
?
Это показывает список членов исключения FileNotFoundError
:
>>> [a for a in dir(FileNotFoundError) if a>'a']
['args', 'characters_written', 'errno', 'filename', 'filename2', 'strerror', 'winerror', 'with_traceback']
Это показывает, что можно установить некоторые аргументы при создании исключения:
>>> FileNotFoundError(1,2,3,4,5).filename
3
>>> FileNotFoundError(1,2,3,4,5).filename2
5
И это показывает, что эти аргументы что-то значат:
>>> raise FileNotFoundError(1,2,3,4,5)
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
raise FileNotFoundError(1,2,3,4,5)
FileNotFoundError: [WinError 4] 2: 3 -> 5
Итак, я знаю, что аргументы есть, их можно установить и использовать. Но я не смог найти никаких документов об этом.
Документация raise, FileNotFoundError
документации или этот пост не говорит об аргументах исключения.
OSError
(но не вException
илиBaseException
), а не только вFileNotFoundError
, и могут быть установлены и доступны как обычно, как этот ответ. - person CasualDemon   schedule 26.08.2015FileNotFoundError
в моем вопросе - это просто пример. Я ищу общий способ решения всех аргументов всех встроенных исключений. Они встроены, задокументированы, но без документации по аргументам. Третий ответ на сообщение, на которое вы ссылаетесь, пытается ответить на мой ответ, но только дляOSError
и без объяснения аргументов. - person stenci   schedule 26.08.2015