How do I set the arguments when I create an exception? Where do I find the list of arguments available for each Exception subclass? What are the best practices?
For example, if I know that a file does not exist, how do I raise the FileNotFoundError(missing_file) exception?
This shows the list of members of the FileNotFoundError exception:
>>> [a for a in dir(FileNotFoundError) if a>'a']
['args', 'characters_written', 'errno', 'filename', 'filename2', 'strerror', 'winerror', 'with_traceback']
This shows that it is possible to set some of the arguments when creating an exception:
>>> FileNotFoundError(1,2,3,4,5).filename
3
>>> FileNotFoundError(1,2,3,4,5).filename2
5
And this shows that those arguments mean something:
>>> 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
So I know the arguments are there, can be set and can be used. But I couldn't find any documentation about it.
Tthe raise documentation, the FileNotFoundError documentation or this post don't talk about the exception arguments.
OSError(but not inExceptionorBaseException), not justFileNotFoundError, and can be set and accessed as normal as this answer shows.FileNotFoundErrorin my question is just an example. I'm looking for a generic way to address all the arguments of all the built in exceptions. They are built in, documented, and yet no argument documentation. The 3rd answer on the post your refer to tries to address my answer, but only forOSErrorand without explanation of the arguments.