[Python-Dev] Raising OSError concrete classes from errno code (original) (raw)
Nick Coghlan ncoghlan at gmail.com
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 PyErrSetFromErrno and PyErrSetFromErrnoWithFilename[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 "", line 1, in 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 ]