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