KeyboardInterrupt se lanza cuando el usuario presiona Ctrl+C (o la tecla de interrupción) para detener un programa en ejecución. Es una subclase de BaseException, no de Exception, por lo que las cláusulas except: simples la capturarán pero except Exception: no lo hará.
Por qué ocurre
- •El usuario interrumpe manualmente un script de larga duración con Ctrl+C.
- •Un ejecutor de pruebas o gestor de procesos envía SIGINT al proceso.
- •Un script automatizado envía una señal de interrupción programáticamente.
Ejemplos
Código que causa el error
# User presses Ctrl+C during this loop
import time
while True:
time.sleep(1)
print("Running...")Error en la terminal
Running... Running... ^CTraceback (most recent call last): File "app.py", line 3, in <module> KeyboardInterrupt
Cómo solucionarlo
Captura KeyboardInterrupt explícitamente si necesitas realizar limpieza antes de salir. Usa un bloque finally para asegurarte de que los recursos como identificadores de archivo y conexiones de red se cierren independientemente de cómo salga el programa. Evita capturar BaseException de forma amplia.
Código corregido
import time
try:
while True:
time.sleep(1)
print("Running...")
except KeyboardInterrupt:
print("Stopped by user")Errores relacionados
¿Listo para practicar tu inglés en el trabajo?
Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.
Prueba Lingua-e gratis