[PATCH 3/4] Re: Catch KeyboardInterrupts and raise them
Johannes Stezenbach
js at sig21.net
Thu Dec 23 19:43:08 GMT 2010
On Wed, Dec 22, 2010 at 11:45:44PM +0100, Nicolas Sebrecht wrote:
> On Wed, Dec 22, 2010 at 03:27:19PM +0100, Sebastian Spaeth wrote:
> >
> > This was previously not important as most of the code was never run in the main thread and thus never got to see KeyboardInterrupts.
> > In preparation for true singlethreaded mode, we need to protect against KeyboardInterrupts and raise them to the top, cleanly exiting after a ctrl-c.
>
> You're talking about the KeyboardInterrupt but not the SystemExit you
> are raising too.
>
> Why do you raise on both except at some lines but not at the others?
>
> The commit message shouldn't have lines longer than 72-80 characters.
>
> > except:
> > + #TODO, we should catch a specific Exception here, not ALL. But which?
> > pass
>
> What do you have in mind? Why do we only catch one specific exception?
Instead of "catch all exceptions except KeyboardInterrupt",
how about "catch only EnvironmentError"?
http://docs.python.org/release/2.6.6/library/exceptions.html#exception-hierarchy
(Note that e.g. socket.error is a subclass of IOError).
Besides fixing the KeyboardInterrupt issue, it would also
give us back the tracebacks on unexpected errors.
Thanks,
Johannes
More information about the OfflineIMAP-project
mailing list