Lassen Sie uns ein Python-Skript erstellen, um dies zu demonstrieren.
-
Öffnen Sie Ihren VS Code-Editor.
-
Erstellen Sie eine neue Datei namens exception_classes.py
im Verzeichnis ~/project
.
~/project/exception_classes.py
-
Fügen Sie den folgenden Code zur Datei exception_classes.py
hinzu:
try:
result = 10 / 0
except ZeroDivisionError as e:
print("Caught a ZeroDivisionError:", e)
except ArithmeticError as e:
print("Caught an ArithmeticError:", e)
except Exception as e:
print("Caught some other exception:", e)
print("Program continues...")
In diesem Skript versuchen wir, 10 durch 0 zu teilen, was eine ZeroDivisionError
auslösen wird. Wir haben drei except
-Blöcke: einen für ZeroDivisionError
, einen für ArithmeticError
und einen für Exception
.
-
Führen Sie das Skript mit dem folgenden Befehl im Terminal aus:
python exception_classes.py
Dadurch wird "Caught a ZeroDivisionError: division by zero" im Terminal ausgegeben.
Beispielausgabe:
Caught a ZeroDivisionError: division by zero
Program continues...
Die Ausgabe zeigt, dass die ZeroDivisionError
vom ersten except
-Block abgefangen wurde.
Jetzt ändern wir das Skript, um eine andere Ausnahme auszulösen.
-
Ändern Sie die Datei exception_classes.py
wie folgt:
try:
result = int("abc")
except ZeroDivisionError as e:
print("Caught a ZeroDivisionError:", e)
except ValueError as e:
print("Caught a ValueError:", e)
except ArithmeticError as e:
print("Caught an ArithmeticError:", e)
except Exception as e:
print("Caught some other exception:", e)
print("Program continues...")
In diesem geänderten Skript versuchen wir, die Zeichenkette "abc" in eine Ganzzahl umzuwandeln, was eine ValueError
auslösen wird.
-
Führen Sie das Skript erneut mit demselben Befehl aus:
python exception_classes.py
Dadurch wird "Caught a ValueError: invalid literal for int() with base 10: 'abc'" im Terminal ausgegeben.
Beispielausgabe:
Caught a ValueError: invalid literal for int() with base 10: 'abc'
Program continues...
Diese Ausgabe zeigt, dass die ValueError
vom zweiten except
-Block abgefangen wurde.
Indem Sie die Ausnahmeklasse direkt im except
-Block angeben, können Sie verschiedene Arten von Ausnahmen auf klare und organisierte Weise behandeln. Dieser Ansatz wird im Allgemeinen für einfache Ausnahmebehandlungen der Verwendung von isinstance()
vorgezogen.