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.
--
http://mail.python.org/mailman/listinfo/python-list