[Python-Dev] GeneratorExit inheriting from Exception
Samuele Pedroni
pedronis at strakt.com
Sat Mar 18 16:50:18 CET 2006
Barry Warsaw wrote:
> On Sat, 2006-03-18 at 22:53 +1000, Nick Coghlan wrote:
>
>>Should GeneratorExit inherit from Exception or BaseException?
>
>
> Actually, this prompts me to write about an issue I have with PEP 352.
> I actually don't think it's necessary (yes, I know it's already in the
> tree).
>
> What I would much rather is is for StandardError to be renamed Error,
> for Exception to remain the base class of the exception hierarchy, and
> for KeyboardInterrupt to be moved to inherit directly from Exception.
> GeneratorExit, SystemExit, and StopIteration would continue to inherit
> from Exception.
>
> The reasoning is this: anything that can be raised is an Exception. Not
> all Exceptions are Errors. Anything that signals an error condition is
> an Error, and anything that signals a warning condition is a Warning.
> Thus the basic hierarchy /ought/ to be:
>
> Exception
> +- KeyboardInterrupt
> +- GeneratorExit
> +- SystemExit
> +- StopIteration
> +- Error
> | +- ImportError
> | +- (etc.)
> |
> +- Warning
> +- UserWarning
> +- (etc.)
>
> Use defined errors should inherit from Error, not Exception. With this,
> "except Exception" would be a synonym for bare except, while "except
> Error" would be the standard idiom for letting non-error exceptions pass
> through.
>
> I don't know whether this is possible for Python 2.5,
well, one thing to consider is all the
class MyException(Exception):
in current code.
> but I think it
> should be what we strive for for Py3K, and I do not think BaseException
> is at all necessary.
>
> -Barry
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: http://mail.python.org/mailman/options/python-dev/pedronis%40strakt.com
More information about the Python-Dev
mailing list