Detectar el error de interrupción del teclado en Python
-
Utilice la declaración
try...except
para detectar el errorKeyboardInterrupt
en Python -
Utilice controladores de señales para detectar el error
KeyboardInterrupt
en Python
El error KeyboardInterrupt
ocurre cuando un usuario intenta detener manualmente el programa en ejecución usando Ctrl + C o Ctrl + Z o interrumpiendo el kernel en el caso de Jupyter Notebook. Para evitar el uso no intencionado de KeyboardInterrupt
que ocurre a menudo, podemos usar el manejo de excepciones en Python.
En esta guía, aprenderá cómo detectar el error KeyboardInterrupt
en Python.
Utilice la declaración try...except
para detectar el error KeyboardInterrupt
en Python
La declaración try...except
se usa cuando se trata del propósito del manejo de excepciones en Python. La declaración try...except
tiene una sintaxis única; está dividido en tres bloques, todos los cuales tienen un propósito y función diferentes en el código Python.
- El bloque
try
contiene el grupo de código que el intérprete debe verificar para detectar cualquier error. - El bloque
except
se utiliza para agregar las excepciones necesarias y evitar los errores del código. - El bloque
finally
contiene las sentencias que deben ejecutarse sin verificación e ignoradas por los bloquestry
yexcept
.
Para explicar el código de KeyboardInterrupt
en Python, tomamos un programa simple que solicita al usuario una entrada mientras maneja manualmente la excepción KeyboardInterrupt
.
El siguiente código utiliza la declaración try...except
para detectar el error KeyboardInterrupt
en Python.
try:
x = input()
print("Try using KeyboardInterrupt")
except KeyboardInterrupt:
print("KeyboardInterrupt exception is caught")
else:
print("No exceptions are caught")
El programa anterior proporciona la siguiente salida.
KeyboardInterrupt exception is caught
En el código anterior, la función de entrada reside entre el bloque try
y se deja vacía ya que no se necesitan más detalles en este caso. Entonces, el bloque except
maneja el error KeyboardInterrupt
. El error KeyboardInterrupt
se genera manualmente para que podamos identificar cuándo se produce el proceso KeyboardInterrupt
.
Python permite la definición de tantos bloques except
como desee el usuario en un fragmento de código.
Utilice controladores de señales para detectar el error KeyboardInterrupt
en Python
El módulo signal
se utiliza para proporcionar funciones y mecanismos que utilizan controladores de señales en Python. Podemos captar la señal SIGINT
, que es básicamente una interrupción del teclado Ctrl+C. Subir KeyboardInterrupt
es la acción predeterminada cuando esto sucede.
El módulo sys
en Python se utiliza para proporcionar varias variables y funciones necesarias que se utilizan para manipular distintas partes del entorno de ejecución de Python.
Los módulos signal
y sys
deben importarse al código Python para utilizar este método con éxito sin ningún error.
El siguiente código utiliza controladores de señales para detectar el error KeyboardInterrupt
en Python.
import signal
import sys
def sigint_handler(signal, frame):
print("KeyboardInterrupt is caught")
sys.exit(0)
signal.signal(signal.SIGINT, sigint_handler)
El código anterior proporciona el siguiente resultado.
KeyboardInterrupt is caught
En el código anterior, la función signal.signal()
se utiliza para definir controladores personalizados que se ejecutarán cuando se reciba una señal de cierto tipo.
Debemos tener en cuenta que un controlador, una vez configurado para una señal en particular, permanece instalado hasta que el usuario lo restablece manualmente. En este caso, la única excepción es el controlador de SIGCHLD
.
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn