Python

Python-Ausnahme

Python-Ausnahme

Eine Ausnahme ist ein Ereignis, das während der Ausführung eines Programms auftritt, um den normalen Ablauf eines Programms zu beenden oder zu ändern. Ein Fehler löst beispielsweise eine Ausnahme aus. Wie andere Programmiersprachen enthält Python viele integrierte Ausnahmen. Diese Ausnahmen werden ausgelöst, wenn bei der Ausführung des Programms ein Fehler auftritt. Die Art des Fehlers bestimmt, welche Ausnahme ausgelöst werden soll. Wenn eine Ausnahme auftritt, überprüft der Python-Interpreter, ob die Ausnahme behandelt wird; wenn nicht, beendet es das Programm. Dieser Artikel erklärt Ausnahmen in Python anhand verschiedener Beispiele.

Integrierte Python-Ausnahmen

Wie bereits erwähnt, verfügt Python über viele integrierte Ausnahmen, die ausgelöst werden, wenn während der Ausführung eines Programms ein Fehler auftritt. Jede Ausnahme wird von einer „Ausnahme“-Basisklasse abgeleitet. Im Folgenden finden Sie einige integrierte Python-Ausnahmen sowie eine kurze Beschreibung der einzelnen Ausnahmetypen:

Ausnahme Beschreibung
Ausnahme Jede Ausnahme wird von dieser Klasse abgeleitet.
Importfehler Diese Ausnahme wird ausgelöst, wenn ein bestimmtes Modul importiert und nicht gefunden wird.
EOFError Dies ist die Dateiende-Ausnahme. Diese Ausnahme tritt auf, wenn das Ende der Datei erreicht ist.
ZeroDivisionError Diese Ausnahme wird ausgelöst, wenn eine Zahl durch Null geteilt wird.
Schlüsselfehler Diese Ausnahme wird ausgelöst, wenn ein bestimmter Schlüssel angegeben oder verwendet wird, der nicht in einem Wörterbuch definiert ist.
IndexFehler Diese Ausnahme wird ausgelöst, wenn versucht wurde, auf einen Sequenzindex zuzugreifen, der nicht im Bereich liegt.
FloatingPointError Diese Ausnahme wird ausgelöst, wenn eine Gleitkommaoperation fehlgeschlagen ist.

Dies sind einige der integrierten Ausnahmen in Python. Weitere Informationen zur Verwendung integrierter Ausnahmen in Python finden Sie in der offiziellen Dokumentation unter https://docs.Python.org/3/Bibliothek/Ausnahmen.html.

Ausnahmeverwendung in Python

Ausnahmen in Python werden mit der try-Anweisung behandelt. Der Code, der eine Ausnahme auslösen oder auslösen kann, ist in einem try-Block implementiert. Neben dem try-Block ist ein Exception-Block implementiert, um die Ausnahme zu behandeln. Im Ausnahmeblock fangen wir die Ausnahme ab und entscheiden, welche Operation ausgeführt werden soll, wenn wir auf diese bestimmte Ausnahme stoßen. Die Syntax zum Schreiben der try- und Exception-Blöcke lautet wie folgt:

Versuchen:
die Operation oder Funktion ausführen perform
außer:
Funktionalität, um die Ausnahme zu behandeln

Jetzt implementieren wir einen einfachen Code in unserem Python-Skript mit den try- und ausgenommen-Blöcken.

Hier drucken wir eine 'name'-Variable, die nicht definiert ist. Dies löst eine Ausnahme im Block ausser aus.

#den Try-Block implementieren
Versuchen:
drucken (Name)
#implementieren des Ausnahmeblocks
außer:
print("Eine Ausnahme ist aufgetreten")

Ausgabe

Tritt keine Ausnahme auf, wird nur der try-Block ausgeführt. Im Ausnahmeblock wird eine Anweisung ausgegeben, dass eine Ausnahme aufgetreten ist.

Schauen wir uns ein weiteres Beispiel an, in dem wir die Variable name definieren:

#Definieren der Namensvariablen
name = "Markieren"
#den Try-Block implementieren
Versuchen:
drucken (Name)
#implementieren des Ausnahmeblocks
außer:
print("Eine Ausnahme ist aufgetreten")

Ausgabe

Im obigen Beispiel wird der try-Block ausgeführt und der else-Block übersprungen, da das Programm keine Ausnahmen auslöst. Wir können so viele außer Blöcke in unserem Programm definieren, wie wir wollen. Jeder Ausnahmeblock behandelt eine bestimmte Art von Ausnahme.

#den Try-Block implementieren
Versuchen:
drucken (Name)
#implementieren des Exception-Blocks, um den Namensfehler abzufangen
außer NameError:
print("Die Variable ist nicht definiert")
#implementieren des Ausnahmeblocks
außer:
print("Etwas ist schief gelaufen außer dem Namensfehler")

Ausgabe

In Python ist Exception die Basisklasse für alle Ausnahmen. Anstatt den Namen einer bestimmten Ausnahme in den Ausnahmeblock zu schreiben, können wir einfach „Ausnahme“ schreiben und auf diese Weise jede Art von Ausnahme abfangen.

#den Try-Block implementieren
Versuchen:
drucken (Name)
#implementieren des Exception-Blocks, um den Fehler abzufangen
außer Ausnahme als exp:
drucken (exp.__Klasse__)
#implementieren des Ausnahmeblocks
außer:
print("Etwas ist schief gelaufen außer dem Namensfehler")

Ausgabe

Die exp.__class__ gibt den Namen der Ausnahmeklasse zurück.

Schauen wir uns in ähnlicher Weise ein Beispiel für die Klasse „ZeroDivisionError“ an.

#den Try-Block implementieren
Versuchen:
x=1/0
drucken (x)
#implementieren des Exception-Blocks, um den Fehler abzufangen
außer Ausnahme als exp:
drucken (exp.__Klasse__)
#implementieren des Ausnahmeblocks
außer:
print("Etwas ist schief gelaufen außer dem Namensfehler")

Ausgabe

Der andere Block

Der else-Block wird mit den try- und Exception-Blöcken verwendet. Der else-Block definiert einen Code, der ausgeführt wird, wenn der try-Block erfolgreich ausgeführt wird und kein Fehler auftritt. Manchmal müssen Sie möglicherweise eine Nachricht drucken oder eine Funktion ausführen, wenn der try-Block erfolgreich ausgeführt wurde. Aus diesem Grund können wir den else-Block mit den try- und ausgenommen-Blöcken implementieren.

In diesem Beispiel implementieren wir den else-Block in unserem Python-Skript.

#den Try-Block implementieren
Versuchen:
x=1/2
drucken (x)
#implementieren des Exception-Blocks, um den Fehler abzufangen
außer Ausnahme als exp:
drucken (exp.__Klasse__)
#Implementieren des else-Blocks
sonst:
print("Alles gut gelaufen")

Ausgabe

Der else-Block wird nach erfolgreicher Ausführung des try-Blocks ausgeführt.

Betrachten wir nun ein weiteres Beispiel mit dem else-Block.

#den Try-Block implementieren
Versuchen:
name="Markieren"
#implementieren des Exception-Blocks, um den Fehler abzufangen
außer Ausnahme als exp:
drucken (exp.__Klasse__)
#Implementieren des else-Blocks
sonst:
print("Der Name ist: ",name)

Ausgabe

Im obigen Beispiel ist die Variable name im try-Block definiert und wird im else-Block ausgegeben.

Der letzte Block

Das schließlich block enthält den Code, der unabhängig davon ausgeführt werden muss, ob der try-Block eine Ausnahme auslöst. Der finally-Block ist optional und wird mit dem try-Block deklariert. Wenn wir zum Beispiel eine Textdatei geöffnet haben, um den try-Block zu lesen und es einen Fehler oder eine Ausnahme auslöst, ist es besser, die Datei in den finally-Block einzuschließen, auch wenn der Fehler auftritt. Lassen Sie uns den finally-Block in unserem Python-Skript implementieren.

#den Try-Block implementieren
Versuchen:
print(mein_dict)
#implementieren des Exception-Blocks, um den Fehler abzufangen
außer Ausnahme als exp:
drucken (exp.__Klasse__)
#Implementieren des finally-Blocks
schließlich:
print("Das ist der letzte Block")
print("Der letzte Block wird ausgeführt")

Ausgabe

In der Ausgabe ist zu sehen, dass der try-Block eine Ausnahme auslöst. Der finally-Block wird jedoch am Ende ausgeführt.

Lassen Sie uns nun eine Textdatei im try-Block öffnen, die eine Ausnahme auslöst, während die Datei im finally-Block eingeschlossen ist.

#den Try-Block implementieren
Versuchen:
fileObj=open("meinstudent.xml","r")
fileObj.suchen(-2)
print(fileObj.Lesezeilen())
#implementieren des Ausnahmeblocks
außer Ausnahme als exp:
drucken (exp.__Klasse__)
#Implementieren des finally-Blocks
schließlich:
fileObj.schließen()
print("Datei wurde erfolgreich geschlossen")

Ausgabe

Wie Sie sehen, wurde die Datei unabhängig vom Wertfehler erfolgreich innerhalb des finally-Blocks geschlossen.

Eine Ausnahme auslösen

Obwohl Ausnahmen automatisch ausgelöst werden, wenn ein Fehler auftritt, können Sie in Python Ausnahmen auch manuell auslösen. Das erziehen Schlüsselwort wird verwendet, um die Ausnahme auszulösen oder auszulösen.

Wir werden jetzt einige Ausnahmen mit dem Schlüsselwort raise auslösen. Im folgenden Beispiel wird die if-Bedingung implementiert, um auf nicht negative Zahlen zu prüfen. Wenn nicht-negative Zahlen vorhanden sind, wird die Ausnahme „Nicht-negative Zahlen sind nicht zulässig“ ausgelöst.

#zwei Zahlenvariablen deklarieren
Anzahl1 = 20
Anzahl2= -10
if ((num1<0) | (num2<0)):
raise Exception("Nicht-negative Zahlen sind nicht erlaubt")
sonst:
print(num1+num2)

Ausgabe

Fazit

Eine Ausnahme tritt als Reaktion auf einen Fehler zur Laufzeit auf. In Python können wir Ausnahmen behandeln, indem wir die Blöcke try und else verwenden. In diesem Artikel wurde anhand verschiedener Beispiele erklärt, wie Ausnahmen in Python verwendet werden.

So verwenden Sie die GameConqueror-Cheat-Engine unter Linux
Der Artikel enthält eine Anleitung zur Verwendung der GameConqueror-Cheat-Engine unter Linux. Viele Benutzer, die Spiele unter Windows spielen, verwen...
Beste Spielkonsolen-Emulatoren für Linux
Dieser Artikel listet beliebte Spielekonsolen-Emulationssoftware auf, die für Linux verfügbar ist. Emulation ist eine Softwarekompatibilitätsschicht, ...
Beste Linux-Distributionen für Gaming im Jahr 2021
Das Linux-Betriebssystem hat sich weit von seinem ursprünglichen, einfachen, serverbasierten Aussehen entfernt. Dieses Betriebssystem hat sich in den ...