Pegue o erro de interrupção do teclado em Python
- 
          
            Use a instrução try...exceptpara detectar o erroKeyboardInterruptem Python
- 
          
            Use manipuladores de sinais para detectar o erro KeyboardInterruptem Python
 
O erro KeyboardInterrupt ocorre quando um usuário tenta manualmente interromper o programa em execução usando o Ctrl + C ou Ctrl + Z comandos ou interrompendo o kernel no caso do Jupyter Notebook. Para evitar o uso não intencional de KeyboardInterrupt que ocorre com frequência, podemos usar o tratamento de exceções em Python.
Neste guia, você aprenderá como detectar o erro KeyboardInterrupt em Python.
Use a instrução try...except para detectar o erro KeyboardInterrupt em Python
A instrução try...except é usada quando se trata do propósito de tratamento de exceções em Python. A instrução try...except tem uma sintaxe única; ele é dividido em três blocos, todos com um propósito e função diferentes no código Python.
- O bloco trycontém o cluster de código que deve ser verificado por qualquer erro pelo interpretador.
- O bloco excepté utilizado para adicionar as exceções necessárias e contornar os erros do código.
- O bloco finallycontém as instruções que precisam ser executadas sem verificação e ignoradas pelos blocostryeexcept.
Para explicar o código para KeyboardInterrupt em Python, pegamos um programa simples que pede a entrada do usuário enquanto lida manualmente com a exceção KeyboardInterrupt.
O código a seguir usa a instrução try...except para capturar o erro KeyboardInterrupt em Python.
try:
    x = input()
    print("Try using KeyboardInterrupt")
except KeyboardInterrupt:
    print("KeyboardInterrupt exception is caught")
else:
    print("No exceptions are caught")
O programa acima fornece a seguinte saída.
KeyboardInterrupt exception is caught
No código acima, a função de entrada reside entre o bloco try e é deixada em branco, pois não são necessários mais detalhes neste caso. Então, o bloco except trata o erro KeyboardInterrupt. O erro KeyboardInterrupt é gerado manualmente para que possamos identificar quando ocorre o processo KeyboardInterrupt.
Python permite a definição de tantos blocos except quantos o usuário quiser em um pedaço de código.
Use manipuladores de sinais para detectar o erro KeyboardInterrupt em Python
O módulo sinal é utilizado para fornecer funções e mecanismos que usam manipuladores de sinal em Python. Podemos captar o sinal SIGINT, que é basicamente uma interrupção do teclado Ctrl+C. Aumentar o KeyboardInterrupt é a ação padrão quando isso acontece.
O módulo sys em Python é utilizado para fornecer várias variáveis e funções necessárias para manipular partes distintas do ambiente de execução Python.
Os módulos signal e sys precisam ser importados para o código Python para usar este método com sucesso sem nenhum erro.
O código a seguir usa manipuladores de sinal para capturar o erro KeyboardInterrupt em Python.
import signal
import sys
def sigint_handler(signal, frame):
    print("KeyboardInterrupt is caught")
    sys.exit(0)
signal.signal(signal.SIGINT, sigint_handler)
O código acima fornece a seguinte saída.
KeyboardInterrupt is caught
No código acima, a função signal.signal() é utilizada para definir manipuladores personalizados a serem executados quando um sinal de um determinado tipo é recebido.
Devemos observar que um manipulador, uma vez definido para um sinal específico, permanece instalado até que o usuário o redefina manualmente. Nesse caso, a única exceção é o manipulador para 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