[Python-Dev] Raising OSError concrete classes from errno code
Nick Coghlan
ncoghlan at gmail.com
Wed Dec 26 11:16:23 CET 2012
More information about the Python-Dev mailing list
Wed Dec 26 11:16:23 CET 2012
- Previous message: [Python-Dev] Raising OSError concrete classes from errno code
- Next message: [Python-Dev] Raising OSError concrete classes from errno code
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Wed, Dec 26, 2012 at 6:50 PM, Serhiy Storchaka <storchaka at gmail.com> wrote: > On 25.12.12 23:55, Andrew Svetlov wrote: >> >> Currently we have exception tree of classes inherited from OSError >> When we use C API we can call PyErr_SetFromErrno and >> PyErr_SetFromErrnoWithFilename[Object] functions. >> This ones raise concrete exception class (FileNotFoundError for >> example) looking on implicit errno value. >> I cannot see the way to do it from python. > > >>>> raise OSError(errno.ENOENT, 'No such file or directory', 'qwerty') > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > FileNotFoundError: [Errno 2] No such file or directory: 'qwerty' As Serhiy's example shows, this mapping of error numbers to subclasses is implemented directly in OSError.__new__. We did this so that code could catch the new exceptions, even when dealing with old code that raises the legacy exception types. http://docs.python.org/3/library/exceptions#OSError could probably do with an example like the one quoted in order to make this clearer Cheers, Nick. -- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
- Previous message: [Python-Dev] Raising OSError concrete classes from errno code
- Next message: [Python-Dev] Raising OSError concrete classes from errno code
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list