Abuse of the object-nature of functions?

Bruno Desthuilliers onurb at xiludom.gro
Tue Jul 11 14:02:09 EDT 2006


Carl J. Van Arsdall wrote:
> Sybren Stuvel wrote:
> 
>> Ant enlightened us with:
>>  
>>
>>>     try:
>>>         assertion = callable.is_assertion
>>>     except:
>>>         pass
>>>     
>>
>>
>> Try to make a habit out of catching only the exceptions you know will
>> be thrown. Catching everything generally is a bad idea. In this case,
>> my bet is that catching AttributeError is enough.
>>
>>   
> 
> What about doing exception kind of like a C switch statement with a
> default case:
> 
> try:
>  do_something()
> except TypeError:
>  fix_something()
> except:
>  print "Unknown error, you are doomed"
>  traceback.print_exc()  #something to print the traceback
>  exit_gracefully()
> 
> Is this frowned upon?  You still handle the error and you know where it
> happened and what happened.  Anything wrong with this?  I don't like the
> idea of my system crashing for any reason.

It may be a good idea to do something like this *at the top level of the
application*. But take time to carefully read the standard exceptions
hierarchy in the fine manual - you'll notice some exception you perhaps
don't want to catch or at least don't want to display (hint: look for
the warnings hierarchy and for SysExit...)

-- 
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb at xiludom.gro'.split('@')])"



More information about the Python-list mailing list