Simple way of handling errors

TomF tomf.sessile at gmail.com
Thu May 7 17:39:54 CEST 2009


On 2009-05-07 01:01:57 -0700, Peter Otten <__peter__ at web.de> said:

> TomF wrote:
> 
>> As a relative newcomer to Python, I like it a lot but I'm dismayed at
>> the difficulty of handling simple errors.  In Perl if you want to
>> anticipate a file-not-found error you can simply do:
>> 
>> open($file)  or die("open($file): $!");
>> 
>> and you get an intelligible error message.  In Python, to get the same
>> thing it appears you need at least:
>> 
>> try:
>> f=open(file)
>> except IOError, err:
>> print "open(%s): got %s" % (file, err.strerror)
>> exit(-1)
>> 
>> Is there a simpler interface or idiom for handling such errors?  I
>> appreciate that Python's exception handling is much more sophisticated
>> but often I don't need it.
>> 
>> -Tom
> 
> While you are making the transition you could write
> 
> from perl_idioms import open_or_die
> 
> f = open_or_die("does-not-exist")
> 
> 
> with the perl_idioms module looking like
> 
> import sys
> 
> def open_or_die(*args):
>     try:
>         return open(*args)
>     except IOError, e:
>         sys.exit(e)
> 
> Peter

Thanks.  Rolling my own error module for common errors may be the best 
way to go.

-Tom




More information about the Python-list mailing list