Python -Try-Außer
Mit dem try
Block können Sie einen Codeblock auf Fehler testen.
Mit dem except
Block können Sie den Fehler behandeln.
Mit dem else
Block können Sie Code ausführen, wenn kein Fehler vorliegt.
Mit dem finally
Block können Sie Code ausführen, unabhängig vom Ergebnis der Try-and-Except-Blöcke.
Ausnahmebehandlung
Wenn ein Fehler oder eine Ausnahme, wie wir es nennen, auftritt, stoppt Python normalerweise und generiert eine Fehlermeldung.
Diese Ausnahmen können mit der try
Anweisung behandelt werden:
Beispiel
Der try
Block generiert eine Ausnahme, weil x
er nicht definiert ist:
try:
print(x)
except:
print("An exception occurred")
Da der Try-Block einen Fehler auslöst, wird der Except-Block ausgeführt.
Ohne den try-Block stürzt das Programm ab und löst einen Fehler aus:
Beispiel
Diese Anweisung löst einen Fehler aus, da x
nicht definiert ist:
print(x)
Viele Ausnahmen
Sie können beliebig viele Ausnahmeblöcke definieren, z. B. wenn Sie einen speziellen Codeblock für eine spezielle Art von Fehler ausführen möchten:
Beispiel
Gibt eine Meldung aus, wenn der try-Block a auslöst, NameError
und eine weitere für andere Fehler:
try:
print(x)
except NameError:
print("Variable x
is not defined")
except:
print("Something else went
wrong")
Anders
Sie können das else
Schlüsselwort verwenden, um einen Codeblock zu definieren, der ausgeführt werden soll, wenn keine Fehler ausgelöst wurden:
Beispiel
In diesem Beispiel try
generiert der Baustein keinen Fehler:
try:
print("Hello")
except:
print("Something went
wrong")
else:
print("Nothing went wrong")
Endlich
Der finally
Block wird, falls angegeben, unabhängig davon ausgeführt, ob der try-Block einen Fehler auslöst oder nicht.
Beispiel
try:
print(x)
except:
print("Something went
wrong")
finally:
print("The 'try except' is finished")
Dies kann nützlich sein, um Objekte zu schließen und Ressourcen zu bereinigen:
Beispiel
Versuchen Sie, eine nicht beschreibbare Datei zu öffnen und in sie zu schreiben:
try:
f = open("demofile.txt")
try:
f.write("Lorum Ipsum")
except:
print("Something went wrong when writing to the file")
finally:
f.close()
except:
print("Something went wrong when opening the
file")
Das Programm kann fortfahren, ohne das Dateiobjekt geöffnet zu lassen.
Lösen Sie eine Ausnahme aus
Als Python-Entwickler können Sie eine Ausnahme auslösen, wenn eine Bedingung eintritt.
Um eine Ausnahme auszulösen (oder auszulösen), verwenden Sie das raise
Schlüsselwort.
Beispiel
Löst einen Fehler aus und stoppt das Programm, wenn x kleiner als 0 ist:
x = -1
if x < 0:
raise Exception("Sorry, no numbers below
zero")
Das raise
Schlüsselwort wird verwendet, um eine Ausnahme auszulösen.
Sie können definieren, welche Art von Fehler ausgelöst werden soll, und den Text, der dem Benutzer angezeigt werden soll.
Beispiel
Löst einen TypeError aus, wenn x keine ganze Zahl ist:
x = "hello"
if not type(x) is int:
raise TypeError("Only
integers are allowed")