exception attributes
Frederic Giacometti
fred at arakane.com
Sun Aug 19 23:13:10 EDT 2001
"Andrew Dalke" <dalke at acm.org> wrote in message
news:9lppoc$8n3$1 at slb2.atl.mindspring.net...
> Frederic Giacometti wrote:
> >String exceptions refer to the exception value used when raising
> >the exception.
>
> Yes.
>
> >But even then, string exceptions must be associated to an exception
class,
> >to which the above rule applies...
>
> Sorry? I don't understand. What's the exception class in the following?
I was referring to expressions like
raise ValueError, "message"
which, roughly, correspond, in C to
PyErr_String( PyExc_ValueError, "message")
(presently heavily used).
>
> >>> try:
> ... raise "test2"
> ... except "test1":
> ... print "Test1"
> ... except "test2":
> ... print "Test2"
> ... except "test3":
> ... print "Test3"
> ...
> Test2
> >>>
>
> (NB: this is all old-style Python exceptions. Use class based
> exceptions for new code.)
Yes, it's for backward compatibility. Why not... Python is 'land of the
free' :))
You'll also note:
>>> try:
... raise 1
... except 2:
... print '22'
... except 1:
... print '2111'
...
Traceback (most recent call last):
File "<stdin>", line 2, in ?
TypeError: exceptions must be strings, classes, or instances
>>>
All freedom is limited ;))
FG
More information about the Python-list
mailing list