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