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.

Regards,
Nick.

-- 
Nick Coghlan   |   [EMAIL PROTECTED]   |   Brisbane, Australia
---------------------------------------------------------------
             http://boredomandlaziness.blogspot.com
_______________________________________________
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