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 tryenthält den Codecluster, der vom Interpreter auf Fehler überprüft werden muss.
- Der Block exceptwird verwendet, um die benötigten Ausnahmen hinzuzufügen und die Fehler des Codes zu umgehen.
- Der Block finallyenthält die Anweisungen, die ohne Prüfung ausgeführt und von den Blöckentryundexceptignoriert 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