[Zope-dev] urgent: string exceptions
Guido van Rossum
guido@python.org
Fri, 11 Apr 2003 11:18:32 -0400
> Chris McDonough wrote:
> > You can catch most string exceptions.
[Lennart]
> I hate it when this happens. I thought you could, so I tried it, and it
> didn't work. Now you say that is should work, so I try it again, and it
> does... So stop telling my Python interpreter that it can do things it
> couldn't before, I get all confused. :p
>
> > "Bad Request" cannot be caught because (afaik) the string isn't
> > interned because it has a space in it.
>
> Strangely enough, I now succeed in cathing 'Bad Request' exceptions when
> I try it, so there is something more to this that my Zen-level doesn't grok.
Depends on how you try it. If in one function you have
raise "Bad Request"
and in another you have
try:
...
except "Bad Request":
...
it will fail. OTOH if you have this in the same function, it will
succeed, because the bytecode compiler collapses identical constants
within one function even if they are not interned.
--Guido van Rossum (home page: http://www.python.org/~guido/)