Abfangen des KeyboardInterrupt-Fehlers in Python
-
Verwenden Sie die
try...except
-Anweisung, um denKeyboardInterrupt
-Fehler in Python abzufangen -
Verwenden Sie Signalhandler, um den
KeyboardInterrupt
-Fehler in Python abzufangen
Der KeyboardInterrupt
-Fehler tritt auf, wenn ein Benutzer versucht, das laufende Programm manuell mit Ctrl + C oder Ctrl + Z. anzuhalten-Befehle oder durch Unterbrechen des Kernels im Fall von Jupyter Notebook. Um die häufig vorkommende unbeabsichtigte Verwendung von KeyboardInterrupt
zu verhindern, können wir in Python die Ausnahmebehandlung verwenden.
In dieser Anleitung erfahren Sie, wie Sie den Fehler KeyboardInterrupt
in Python abfangen.
Verwenden Sie die try...except
-Anweisung, um den KeyboardInterrupt
-Fehler in Python abzufangen
Die Anweisung try...except
wird verwendet, wenn es um die Ausnahmebehandlung in Python geht. Die Anweisung try...except
hat eine eindeutige Syntax; es ist in drei Blöcke unterteilt, die alle einen anderen Zweck und eine andere Funktion im Python-Code haben.
- Der Block
try
enthält den Codecluster, der vom Interpreter auf Fehler überprüft werden muss. - Der Block
except
wird verwendet, um die benötigten Ausnahmen hinzuzufügen und die Fehler des Codes zu umgehen. - Der Block
finally
enthält die Anweisungen, die ohne Prüfung ausgeführt und von den Blöckentry
undexcept
ignoriert werden.
Um den Code für KeyboardInterrupt
in Python zu erklären, nehmen wir ein einfaches Programm, das den Benutzer zur Eingabe auffordert, während es die KeyboardInterrupt
-Ausnahme manuell behandelt.
Der folgende Code verwendet die try...except
-Anweisung, um den KeyboardInterrupt
-Fehler in Python abzufangen.
try:
x = input()
print("Try using KeyboardInterrupt")
except KeyboardInterrupt:
print("KeyboardInterrupt exception is caught")
else:
print("No exceptions are caught")
Das obige Programm liefert die folgende Ausgabe.
KeyboardInterrupt exception is caught
Im obigen Code befindet sich die Eingabefunktion zwischen dem try
-Block und wird leer gelassen, da in diesem Fall keine weiteren Details benötigt werden. Dann behandelt der Block except
den Fehler KeyboardInterrupt
. Der KeyboardInterrupt
-Fehler wird manuell ausgelöst, damit wir erkennen können, wann der KeyboardInterrupt
-Prozess auftritt.
Python erlaubt die Definition beliebig vieler except
-Blöcke in einem Codeblock.
Verwenden Sie Signalhandler, um den KeyboardInterrupt
-Fehler in Python abzufangen
Das Modul signal
wird verwendet, um Funktionen und Mechanismen bereitzustellen, die Signalhandler in Python verwenden. Wir können das Signal SIGINT
abfangen, das im Grunde ein Interrupt von der Tastatur (Strg + C)
ist. Das Auslösen des KeyboardInterrupt
ist in diesem Fall die Standardaktion.
Das Modul sys
in Python wird verwendet, um mehrere notwendige Variablen und Funktionen bereitzustellen, die verwendet werden, um verschiedene Teile der Python-Laufzeitumgebung zu manipulieren.
Die Module signal
und sys
müssen in den Python-Code importiert werden, um diese Methode erfolgreich und fehlerfrei verwenden zu können.
Der folgende Code verwendet Signalhandler, um den KeyboardInterrupt
-Fehler in Python abzufangen.
import signal
import sys
def sigint_handler(signal, frame):
print("KeyboardInterrupt is caught")
sys.exit(0)
signal.signal(signal.SIGINT, sigint_handler)
Der obige Code liefert die folgende Ausgabe.
KeyboardInterrupt is caught
Im obigen Code wird die Funktion signal.signal()
verwendet, um benutzerdefinierte Handler zu definieren, die ausgeführt werden sollen, wenn ein Signal eines bestimmten Typs empfangen wird.
Wir sollten beachten, dass ein Handler, der einmal für ein bestimmtes Signal festgelegt wurde, installiert bleibt, bis der Benutzer ihn manuell zurücksetzt. Einzige Ausnahme ist in diesem Fall der Handler für 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