Attrapez l'erreur KeyboardInterrupt en Python
-
Utilisez l’instruction
try...except
pour détecter l’erreurKeyboardInterrupt
en Python -
Utilisez des gestionnaires de signaux pour détecter l’erreur
KeyboardInterrupt
en Python
L’erreur KeyboardInterrupt
se produit lorsqu’un utilisateur essaie manuellement d’arrêter le programme en cours d’exécution en utilisant Ctrl + C ou Ctrl + Z ou en interrompant le noyau dans le cas de Jupyter Notebook. Pour éviter l’utilisation involontaire de KeyboardInterrupt
qui se produit souvent, nous pouvons utiliser la gestion des exceptions en Python.
Dans ce guide, vous apprendrez comment détecter l’erreur KeyboardInterrupt
en Python.
Utilisez l’instruction try...except
pour détecter l’erreur KeyboardInterrupt
en Python
L’instruction try...except
est utilisée lorsqu’il s’agit de gérer les exceptions en Python. L’instruction try...except
a une syntaxe unique ; il est divisé en trois blocs, qui ont tous un objectif et une fonction différents dans le code Python.
- Le bloc
try
contient le cluster de code qui doit être vérifié pour toute erreur par l’interpréteur. - Le bloc
except
est utilisé pour ajouter les exceptions nécessaires et contourner les erreurs du code. - Le bloc
finally
contient les instructions qui doivent être exécutées sans vérification et ignorées par les blocstry
etexcept
.
Pour expliquer le code de KeyboardInterrupt
en Python, nous prenons un programme simple qui demande à l’utilisateur une entrée tout en gérant manuellement l’exception KeyboardInterrupt
.
Le code suivant utilise l’instruction try...except
pour détecter l’erreur KeyboardInterrupt
en Python.
try:
x = input()
print("Try using KeyboardInterrupt")
except KeyboardInterrupt:
print("KeyboardInterrupt exception is caught")
else:
print("No exceptions are caught")
Le programme ci-dessus fournit la sortie suivante.
KeyboardInterrupt exception is caught
Dans le code ci-dessus, la fonction d’entrée réside entre le bloc try
et est laissée vide car des détails supplémentaires ne sont pas nécessaires dans ce cas. Ensuite, le bloc except
gère l’erreur KeyboardInterrupt
. L’erreur KeyboardInterrupt
est déclenchée manuellement afin que nous puissions identifier le moment où le processus KeyboardInterrupt
se produit.
Python permet la définition d’autant de blocs except
que l’utilisateur le souhaite dans un morceau de code.
Utilisez des gestionnaires de signaux pour détecter l’erreur KeyboardInterrupt
en Python
Le module signal
est utilisé pour fournir des fonctions et des mécanismes qui utilisent des gestionnaires de signaux en Python. Nous pouvons capter le signal SIGINT
, qui est essentiellement une interruption du clavier Ctrl+C. L’augmentation de la KeyboardInterrupt
est l’action par défaut lorsque cela se produit.
Le module sys
de Python est utilisé pour fournir plusieurs variables et fonctions nécessaires utilisées pour manipuler des parties distinctes de l’environnement d’exécution Python.
Les modules signal
et sys
doivent être importés dans le code Python pour utiliser cette méthode avec succès et sans erreur.
Le code suivant utilise des gestionnaires de signaux pour détecter l’erreur 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)
Le code ci-dessus fournit la sortie suivante.
KeyboardInterrupt is caught
Dans le code ci-dessus, la fonction signal.signal()
est utilisée pour définir des gestionnaires personnalisés à exécuter lorsqu’un signal d’un certain type est reçu.
Il convient de noter qu’un gestionnaire, une fois défini pour un signal particulier, reste installé jusqu’à ce que l’utilisateur le réinitialise manuellement. Dans ce cas, la seule exception est le gestionnaire 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