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/)