R: [Python-Dev] Deprecating string exceptions
Neal Norwitz
neal@metaslash.com
Sat, 30 Mar 2002 13:14:35 -0500
Guido van Rossum wrote:
>
> > The question is, whether, given
> >
> > class Base:pass
> > class MyExc(Base, Exception):pass
> >
> > it would be valid to write
> >
> > try:
> > foo() # raises MyExc
> > except Base:
> > pass
>
> The "except Base:" class would of course be illegal because Base
> doesn't derive from Exception. (Although the error might only be
> detected when MyExc is raised -- but PyChecker could do better.) But
> the statement "raise MyExc" would be perfectly legal, and could be
> caught either with "except MyExc" or "except Exception".
There are several problems in the std library now:
bdb.py:9 BdbQuit is a string exception
macpath.py:173 norm_error is a string exception
tabnanny.py:48 NannyNag does not derive from Exception
xdrlib.py:12 ConversionError (Error) does not derive from Exception
Shall I make all of these derive from Exception?
Is there any potential problems with doing so?
Neal