[Python-Dev] EINVAL

2010-07-22 Thread Antoine Pitrou
On Thu, 22 Jul 2010 17:50:00 +0900
Stephen J. Turnbull step...@xemacs.org wrote:
 Greg Ewing writes:
   Glyph Lefkowitz wrote:
   
The selection of RuntimeError in this particular case seems
somewhat random and ad-hoc,
 
 Well, I guess we'd have to catch the person who wrote the code and
 ask.
 
   Maybe this is something that could be considered in the
   exception hierarchy revamp proposal that was posted recently?
 
 I think that's Antoine's PEP 3151.  Interestingly, he doesn't mention
 EINVAL at all.
 
 http://www.python.org/dev/peps/pep-3151/

That's right. It is based on a survey of existing exception-catching
code in the stdlib. There's only one match in the whole Lib/ subtree:

$ grep -r EINVAL Lib/
Lib/plat-sunos5/STROPTS.py:968:EINVAL = 22

I guess EINVAL would most often indicate a programming error, which is
why it doesn't get handled specifically in except clauses. Semantically,
EINVAL seems close to ValueError. If I search inside the man pages
here, I get excerpts such as:

- wait(2):

   EINVAL The options argument was invalid.

- gettimeofday(2):

   EINVAL Timezone (or something else) is invalid.

- socket(2):

   EINVAL Unknown protocol, or protocol family not available.

   EINVAL Invalid flags in type.

- rename(2):

   EINVAL The new pathname contained a path prefix of the old,
   or,  more  generally,  an attempt was made to make a directory a
   subdirectory of itself.

Regards

Antoine.


___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] EINVAL

2010-07-22 Thread exarkun

On 10:33 am, solip...@pitrou.net wrote:

On Thu, 22 Jul 2010 17:50:00 +0900
Stephen J. Turnbull step...@xemacs.org wrote:


I think that's Antoine's PEP 3151.  Interestingly, he doesn't mention
EINVAL at all.

http://www.python.org/dev/peps/pep-3151/


That's right. It is based on a survey of existing exception-catching
code in the stdlib. There's only one match in the whole Lib/ subtree:

$ grep -r EINVAL Lib/
Lib/plat-sunos5/STROPTS.py:968:EINVAL = 22

I guess EINVAL would most often indicate a programming error, which is
why it doesn't get handled specifically in except clauses.


For setgroups it means you exceeded a platform-specific limit.  On 
Windows, for non-blocking connect, it means wait a little longer.


Jean-Paul
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com