En los scripts de Python, hay muchos casos en que una interrupción de teclado (Ctrl-C) no puede matar el proceso a causa de un desnudo except
cláusula en alguna parte del código:Evitar accidentalmente captura KeyboardInterrupt y SystemExit en Python 2.4
try:
foo()
except:
bar()
La solución estándar en Python 2.5 o superior es atrapar Exception
en lugar de utilizar desnudos except
cláusulas:
try:
foo()
except Exception:
bar()
Esto funciona porque, a partir de Python 2.5, KeyboardInterrupt
y SystemExit
hereda de BaseException
, no Exception
. Sin embargo, algunas instalaciones todavía ejecutan Python 2.4. ¿Cómo se puede manejar este problema en versiones anteriores a Python 2.5?
(voy a responder a esta pregunta a mí mismo, pero ponerlo aquí para que la gente en busca de ella se puede encontrar una solución.)
no hacen preguntas sólo para que se les puede contestar sí mismo. SO no es una wiki de datos aleatorios; son las respuestas a las preguntas que las personas * realmente están haciendo *. –
@Glenn Maynard: Guess _you_ están equivocados: http://meta.stackexchange.com/questions/12513/should-i-not-answer-my-own-questions – Curd
responder a su propia pregunta si la figura la respuesta a cabo después de pedir está bien. Hacer una pregunta * para poder responderla * es completamente diferente. –