On 7/31/05, Nick Coghlan <[EMAIL PROTECTED]> wrote:
> Brett Cannon wrote:
> >>Notice that I've classified KeyboardInterrupt as user-initiated control flow
> >>and put it under ControlFlowException above. This means that everything 
> >>under
> >>CriticalError and Error actually ends with the word 'Error'.
> >
> > I don't know if I like this change in inheritance.  While we do tend
> > to use KeyboardInterrupt as a way to kill a program, is that really
> > control flow, or a critical exception that the program needs to stop
> > because an serious event occurred?
> >
> > I prefer the latter explanation.
> 
> You're probably right. How does the following reasoning sound:
> 
> SystemExit, GeneratorExit and StopIteration are all deliberately triggered by
> certain well-defined elements of normal application code. That is, only
> certain operations will ever result in a ControlFlowException being raised.
> 
> KeyboardInterrupt is a better fit with MemoryError and SystemError - something
> that occurs unexpectedly, at an arbitary point during program execution. That
> is, a CriticalError may be raised when attempting to execute almost any 
> operation.
> 

Yeah, those explanations work for me.  I think I am going to have to
write an explanation for every exception so its usage is clear.

-Brett
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to