Die Verwendung von try in Python
In Python try
wird das Schlüsselwort für die Ausnahmebehandlung verwendet. try
Die Syntax der Anweisung lautet wie folgt:
try:
# 可能会抛出异常的语句块
except ExceptionType1:
# 处理 ExceptionType1 异常的语句块
except ExceptionType2:
# 处理 ExceptionType2 异常的语句块
else:
# 如果没有异常发生,执行的语句块
finally:
# 不管有没有异常,都会执行的语句块
Unter anderem try
kann der Code im Anweisungsblock eine Ausnahme auslösen. Wenn eine Ausnahme ausgelöst wird, wird sie try
im Anweisungsblock unterbrochen und zum entsprechenden except
Anweisungsblock gesprungen, um die Ausnahme zu behandeln. Der zu behandelnde Ausnahmetyp kann im Anweisungsblock angegeben werden. Wenn die ausgelöste Ausnahme vom angegebenen Typ ist, wird der Code im except
entsprechenden Anweisungsblock ausgeführt .except
Wenn try
im Anweisungsblock keine Ausnahme ausgelöst wird, else
wird der Code im Anweisungsblock ausgeführt. finally
Der Code im Anweisungsblock wird unabhängig davon ausgeführt, ob eine Ausnahme vorliegt.
Das Folgende ist ein einfaches Beispiel, das try
die Verwendung von Anweisungsblöcken demonstriert:
try:
x = int(input("请输入一个整数: "))
print("输入的整数是:", x)
except ValueError:
print("输入错误:请输入整数")
else:
print("没有发生异常")
finally:
print("程序执行完毕")
In diesem Beispiel try
versucht der Code im Block, Benutzereingaben in eine Ganzzahl umzuwandeln und gibt das konvertierte Ergebnis aus. Wenn die Benutzereingabe keine Ganzzahl ist, ValueError
wird eine Ausnahme ausgelöst und dann zum entsprechenden except
Anweisungsblock gesprungen, um die Ausnahme zu behandeln. Im except
Anweisungsblock geben wir eine Fehlermeldung aus, die dem Benutzer mitteilt, dass die Eingabe falsch war. Im else
Anweisungsblock geben wir eine Meldung aus, die besagt, dass keine Ausnahme aufgetreten ist. Im finally
Anweisungsblock geben wir eine Meldung aus, die angibt, dass die Programmausführung abgeschlossen ist, unabhängig davon, ob eine Ausnahme auftritt oder nicht.
Benutzerdefinierte Ausnahme
ValueError
Es handelt sich um einen der in Python integrierten Ausnahmetypen. Er zeigt normalerweise an, dass die von einer Funktion oder Methode empfangenen Parameter ungültig oder illegal sind. Wenn Sie beispielsweise versuchen, eine Zeichenfolge in eine Ganzzahl umzuwandeln, wird eine Ausnahme ausgelöst, wenn die Zeichenfolge keine zulässige Zahl ist ValueError
.
In Python können Sie zusätzlich zu den integrierten Ausnahmetypen auch Ausnahmetypen anpassen. Um einen Ausnahmetyp anzupassen, können Sie eine neue Klasse definieren und von der Exception
Klasse oder anderen integrierten Ausnahmetypen erben. Der folgende Code definiert beispielsweise einen benutzerdefinierten Ausnahmetyp MyError
:
class MyError(Exception):
pass
MyError
Nachdem Sie den Ausnahmetyp definiert haben , können Sie diese Ausnahme im Programm auslösen. Zum Beispiel:
def my_function(x):
if x < 0:
raise MyError("x不能小于0")
else:
return x * 2
try:
result = my_function(-1)
except MyError as e:
print("发生了自定义异常:", e)
else:
print("结果是:", result)
In diesem Beispiel definieren wir eine my_function()
Funktion namens, die eine Zahl nimmt x
und sie mit 2 multipliziert. Wenn es x
sich um eine negative Zahl handelt, wird eine Ausnahme ausgelöst MyError
und eine Fehlermeldung ausgegeben. Im try
Anweisungsblock haben wir aufgerufen my_function(-1)
, und da -1
es sich um eine negative Zahl handelt, MyError
wird eine Ausnahme ausgelöst. Im except
Anweisungsblock fangen wir diese Ausnahme ab und geben die Fehlermeldung aus. Im else
Anweisungsblock geben wir die Berechnungsergebnisse aus.
Integrierte Ausnahmen
In Python gibt es viele integrierte Ausnahmetypen, mit denen verschiedene Arten von Fehlern behandelt werden können. Im Folgenden sind gängige Ausnahmetypen und ihre Beschreibungen aufgeführt, die in die Python-Version 3.9.6 integriert sind:
Exception
: Basisklasse für alle Ausnahmen.AttributeError
: Das Objekt verfügt nicht über dieses Attribut.EOFError
: Kein integrierter Eingang, EOF-Marke erreicht.FileExistsError
: Beim Erstellen einer Datei oder eines Verzeichnisses wurde festgestellt, dass die Datei oder das Verzeichnis bereits vorhanden ist.FileNotFoundError
: Die Datei oder das Verzeichnis existiert nicht.ImportError
: Modulimport fehlgeschlagen.IndexError
: Dieser Index ist in der Sequenz nicht vorhanden.KeyError
: Dieser Schlüssel ist in der Karte nicht vorhanden.KeyboardInterrupt
: Benutzer unterbricht die Ausführung.MemoryError
: Speicherüberlauffehler.NameError
: Nicht deklariertes/initialisiertes Objekt (keine Eigenschaften).NotImplementedError
: Die abstrakte Methode ist nicht implementiert.OSError
: Betriebssystemfehler, z. B. Fehler beim Öffnen/Lesen von Dateien.OverflowError
: Numerische Operation überschreitet den Maximalwert.RecursionError
: Die Rekursion ist zu tief verschachtelt.RuntimeError
: Allgemeiner Laufzeitfehler.StopIteration
:Der Iterator hat keine weiteren Werte.SyntaxError
:Grammatische Fehler.IndentationError
: Einrückungsfehler.TabError
: Tabulator und Leerzeichen mischen.SystemError
:Interner Fehler des Interpreters.TypeError
: Der Vorgang oder die Funktion wird auf einen ungeeigneten Typ angewendet.UnboundLocalError
: Greifen Sie auf nicht initialisierte lokale Variablen zu.UnicodeError
:Unicode-bezogene Fehler.ValueError
: Eine Operation oder Funktion hat ein Argument mit einem falschen Wert empfangen.ZeroDivisionError
: Der Divisor ist Null.
Es ist zu beachten, dass dies nur einige der in Python integrierten Ausnahmetypen sind. Es gibt viele andere Ausnahmetypen, und Sie können Ausnahmetypen auch anpassen. Beim Schreiben von Code können Sie den geeigneten Ausnahmetyp auswählen, um Fehler nach Bedarf zu behandeln.