Pegue o erro de interrupção do teclado em Python
-
Use a instrução
try...except
para detectar o erroKeyboardInterrupt
em Python -
Use manipuladores de sinais para detectar o erro
KeyboardInterrupt
em 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
try
conté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
finally
contém as instruções que precisam ser executadas sem verificação e ignoradas pelos blocostry
eexcept
.
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