Fangen Sie eine bestimmte Ausnahme
Im vorherigen Schritt haben Sie verschiedene Arten von Ausnahmen (Exceptions) in Python kennengelernt. Jetzt lernen Sie, wie Sie eine bestimmte Ausnahme mithilfe des try...except
-Blocks fangen können. Dies ermöglicht es Ihnen, verschiedene Fehler auf unterschiedliche Weise zu behandeln und macht Ihren Code robuster.
Beim Fangen von Ausnahmen ist es eine bewährte Methode, so spezifisch wie möglich zu sein. Dies verhindert, dass Ihr except
-Block versehentlich Ausnahmen fängt, die er nicht behandeln soll, was Fehler verdecken und das Debugging erschweren kann.
Lassen Sie uns das Skript exceptions_demo.py
ändern, um eine bestimmte Ausnahme, wie z. B. ValueError
, zu fangen, wenn versucht wird, einen String in eine Ganzzahl umzuwandeln.
- Öffnen Sie die Datei
exceptions_demo.py
im Verzeichnis ~/project
mit VS Code.
- Ändern Sie das Skript, um nur den
ValueError
zu fangen, wenn ein String in eine Ganzzahl umgewandelt wird:
try:
num = int("abc")
except ValueError as e:
print(f"ValueError caught: {e}")
except Exception as e:
print(f"Some other exception: {e}")
print("Continuing execution...")
In diesem Beispiel fangen wir speziell den ValueError
ab, der auftritt, wenn int("abc")
fehlschlägt. Wenn innerhalb des try
-Blocks eine andere Ausnahme auftritt, wird sie vom except Exception as e:
-Block gefangen. Die Anweisung print("Continuing execution...")
wird immer ausgeführt, wenn eine Ausnahme gefangen wird, was zeigt, dass das Programm nach der Behandlung der Ausnahme weiterläuft.
Jetzt lassen Sie uns das Skript ausführen:
- Öffnen Sie das Terminal in VS Code.
- Navigieren Sie zum Verzeichnis
~/project
:
cd ~/project
- Führen Sie das Skript
exceptions_demo.py
mit dem Python-Befehl aus:
python exceptions_demo.py
Sie sollten die folgende Ausgabe sehen:
ValueError caught: invalid literal for int() with base 10: 'abc'
Continuing execution...
Diese Ausgabe zeigt, dass der ValueError
gefangen wurde und das Programm fortgesetzt hat.
Jetzt ändern wir das Skript, um eine andere Ausnahme, wie z. B. TypeError
, auszulösen und zu sehen, wie sie behandelt wird:
- Öffnen Sie die Datei
exceptions_demo.py
im Verzeichnis ~/project
mit VS Code.
- Ändern Sie das Skript, um einen
TypeError
auszulösen:
try:
result = 1 + "a"
except ValueError as e:
print(f"ValueError caught: {e}")
except Exception as e:
print(f"Some other exception: {e}")
print("Continuing execution...")
Jetzt führen Sie das Skript erneut aus:
python exceptions_demo.py
Sie sollten die folgende Ausgabe sehen:
Some other exception: unsupported operand type(s) for +: 'int' and 'str'
Continuing execution...
Diese Ausgabe zeigt, dass der TypeError
vom except Exception as e:
-Block gefangen wurde, da es keinen spezifischen except TypeError
-Block gibt.
Das Fangen bestimmter Ausnahmen ermöglicht es Ihnen, verschiedene Fehler auf unterschiedliche Weise zu behandeln, was Ihren Code robuster und leichter zu debuggen macht. Im nächsten Schritt lernen Sie, wie Sie die Ausnahmeinstanz überprüfen können.