Which exception has been used? (was: Which exception to use?)
Cameron Laird
claird at lairds.com
Thu Jan 30 17:43:15 EST 2003
In article <7h3y954ywdw.fsf at pc150.maths.bris.ac.uk>,
Michael Hudson <mwh at python.net> wrote:
>Chad Netzer <cnetzer at mail.arc.nasa.gov> writes:
>
>> I do things like this for some library functions that I create (I
>> welcome discussion about whether it is a good approach)
>>
>> class ArgumentError( Exception ):
>> pass
>
>This *is* a good approach (IMHO), but you should consider deriving
>your exceptions from StandardError instead (I rarely remember to do
>this, either).
.
.
.
And what about people who don't?
I've liked this thread for its serious presentations
of the results of deep experience. I still suspect
I'm at least two big insights from comfort with ex-
ceptions, though.
One of my problems is that I don't know how to write
"the default case". When we see the above, I assume
we all have in mind client code that looks like
try:
myfunction()
except SpecializedError, e:
something_special()
except StandardError, e:
cope_somehow_with_this(e)
Suppose, as is always true, though, that I'm dealing
with modules not under my control. How do I catch
"other"? There must be something I'm missing about
the new type and exception systems, 'cause I don't
see a Pythonic way to write
....
except OTHER, e:
# The foreign code threw an exception of
# a type I don't recognize, but I need
# to process/log/... 'e'.
cope(e)
Yes, I can write
....
except:
cope()
but then I've lost the information I want in 'e'.
--
Cameron Laird <Cameron at Lairds.com>
Business: http://www.Phaseit.net
Personal: http://phaseit.net/claird/home.html
More information about the Python-list
mailing list