
Well, I was still casually using string exceptions up until about a year
ago, and I think I'm not the only one. There's probably lots of pre-2.0 code still running in the wild with string exceptions.
Note "casually", probably in throw-away code. If you knew they didn't exist, you'd "casually" use some built-in exception, e.g. RuntimeError.
I'm mostly with Guido on this however... I would venture that many of these "wild" string raises are shortcut error messages. Is there really a lot of code that does < try: catch "foo": > ? I still "casually" use string exceptions mostly as a shortcut to get unfinished code to bomb (or to generate a quick traceback. Often of the form if foo.is_simple(): foo.easy() else: raise 'zz' Granted, I could probably use raise NotImplementedError But that is more typing than I want for a quick line that will likely be ripped out the first time it actually triggers. Also, I sometimes trap NotImplementedError, so I want an exception that I would never try to catch (I don't think I could stomach a except "zz": line in my code :-). The good news for me (and I suspect many other casual string throwers) is that if < raise "zz" > raises ANY runtime exception, most of my code will continue to "do the right thing." Pat -- Patrick Miller | (925) 423-0309 | http://www.llnl.gov/CASC/people/pmiller Be the change you want to see in the world. -- Mahatma Gandhi (1869-1948)