Understanding and dealing with an exception

Mark Lawrence breamoreboy at yahoo.co.uk
Sun Oct 14 07:17:29 EDT 2012


On 14/10/2012 11:06, Terry Reedy wrote:
> On 10/14/2012 4:20 AM, Mark Lawrence wrote:
>
>> You've already had some advice so I'll just point out that a bare except
>> is a bad idea as you wouldn't even be able to catch a user interrupt.
>> Try (groan!) catching StandardError instead.
>
> There are some bare except:s in the stdlib, that adding another is
> frowned on and removing one is smiled upon.
>
> However:
>  >>> StandardError
> Traceback (most recent call last):
>    File "<pyshell#0>", line 1, in <module>
>      StandardError
> NameError: name 'StandardError' is not defined
>
> Try:
>  >>> Exception
> <class 'Exception'>
>
> This catches everything except a few things like Keyboard Interrupt that
> you normally should not catch.
>
>  >>> BaseException
> <class 'BaseException'>
>
> This catches everything, but signals that doing so is probably intentional.
>

White Man type with forked fingers?

c:\Users\Mark\Cash\Python>python
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit 
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
 >>> StandardError
<type 'exceptions.StandardError'>

Perhaps not.

c:\Users\Mark\Cash\Python>py -3
Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 10:55:48) [MSC v.1600 32 
bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
 >>> StandardError
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
NameError: name 'StandardError' is not defined

Down to this http://www.python.org/dev/peps/pep-3151/ or was it done 
earlier?

-- 
Cheers.

Mark Lawrence.




More information about the Python-list mailing list