those darn exceptions

John Nagle nagle at animats.com
Mon Jun 27 14:52:02 EDT 2011


On 6/21/2011 2:51 PM, Chris Torek wrote:
>> On Tue, 21 Jun 2011 01:43:39 +0000, Chris Torek wrote:
>>> But how can I know a priori
>>> that os.kill() could raise OverflowError in the first place?

    If you passed an integer that was at some time a valid PID
to "os.kill()", and OverflowError was raised, I'd consider that
a bug in "os.kill()".  Only OSError, or some subclass thereof,
should be raised for a possibly-valid PID.

    If you passed some unreasonably large number, that would be
a legitimate reason for an OverflowError. That's for parameter
errors, though; it shouldn't happen for environment errors.

    That's a strong distinction.  If something can raise an
exception because the environment external to the process
has a problem, the exception should be an EnvironmentError
or a subclass thereof.   This maintains a separation between
bugs (which usually should cause termination or fairly
drastic recovery action) and normal external events (which
have to be routinely handled.)

    It's quite possible to get a OSError on "os.kill()" for
a number of legitimate reasons. The target process may have
exited since the PID was obtained, for example.

				John Nagle



More information about the Python-list mailing list