[Python-Dev] Raising OSError concrete classes from errno code (original) (raw)

Andrew Svetlov andrew.svetlov at gmail.com
Wed Dec 26 18:23:40 CET 2012


Thanks for the elaboration!

On Wed, Dec 26, 2012 at 6:42 PM, Antoine Pitrou <solipsis at pitrou.net> wrote:

On Wed, 26 Dec 2012 13:37:13 +0200 Andrew Svetlov <andrew.svetlov at gmail.com> wrote:

> > 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. > Sorry. Looks like OSError.new requires at least two arguments for executing subclass search mechanism:

>>> OSError(errno.ENOENT) OSError(2,) >>> OSError(errno.ENOENT, 'error msg') FileNotFoundError(2, 'error msg') Indeed, it does. I did this for consistency, because calling OSError with only one argument doesn't set the "errno" attribute at all:

e = OSError(5) e.errno

Regards Antoine.


Python-Dev mailing list Python-Dev at python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/andrew.svetlov%40gmail.com

-- Thanks, Andrew Svetlov



More information about the Python-Dev mailing list