Einführung
In diesem Lab lernen Sie, wie Sie prüfen können, ob in Python eine Ausnahme (Exception) ausgelöst wurde. Das Lab konzentriert sich auf das Verständnis von Ausnahmen und die Verwendung von try-except-Blöcken, um diese auszufangen und zu behandeln, um so Abstürze des Programms zu vermeiden.
Sie beginnen damit, ein Python-Skript zu erstellen, das eine ZeroDivisionError-Ausnahme auslöst. Anschließend lernen Sie, wie Sie einen try-except-Block verwenden, um diese Ausnahme auszufangen und sie elegant zu behandeln, damit Ihr Programm weiterhin laufen kann.
Ausnahmen verstehen
In diesem Schritt lernen Sie über Ausnahmen (Exceptions) in Python. Ausnahmen sind Ereignisse, die während der Ausführung eines Programms auftreten und den normalen Ablauf der Anweisungen unterbrechen. Das Verständnis von Ausnahmen ist entscheidend für das Schreiben von robustem und zuverlässigem Python-Code.
Wenn in Python ein Fehler auftritt, wird eine Ausnahme ausgelöst. Wenn die Ausnahme nicht behandelt wird, wird das Programm beendet und eine Fehlermeldung angezeigt. Allerdings können Sie mit try-except-Blöcken Ausnahmen auffangen und behandeln, um zu verhindern, dass Ihr Programm abstürzt.
Beginnen wir mit einem einfachen Beispiel, das eine Ausnahme auslöst:
Öffnen Sie den VS Code-Editor in der LabEx-Umgebung.
Erstellen Sie eine neue Datei mit dem Namen
division.pyim Verzeichnis~/project.~/project/division.pyFügen Sie den folgenden Code in die Datei
division.pyein:numerator = 10 denominator = 0 result = numerator / denominator print(result)Dieser Code versucht, 10 durch 0 zu teilen, was eine ungültige Operation ist und eine
ZeroDivisionError-Ausnahme auslöst.Führen Sie das Skript mit dem folgenden Befehl im Terminal aus:
python division.pySie werden eine Ausgabe ähnlich der folgenden sehen:
Traceback (most recent call last): File "/home/labex/project/division.py", line 3, in <module> result = numerator / denominator ZeroDivisionError: division by zeroDie Rückverfolgung (Traceback) zeigt, dass eine
ZeroDivisionErrorin Zeile 3 der Dateidivision.pyaufgetreten ist. Das Programm wurde beendet, weil die Ausnahme nicht behandelt wurde.
Nun sehen wir uns an, wie man diese Ausnahme mit einem try-except-Block behandeln kann.
try-except zum Abfangen verwenden
In diesem Schritt lernen Sie, wie Sie try-except-Blöcke verwenden, um Ausnahmen (Exceptions) in Python abzufangen und zu behandeln. Dadurch kann Ihr Programm auch dann weiterlaufen, wenn Fehler auftreten.
Die Grundstruktur eines try-except-Blocks ist wie folgt:
try:
## Code that might raise an exception
except ExceptionType:
## Code to handle the exception
Der Code innerhalb des try-Blocks wird ausgeführt. Wenn eine Ausnahme des Typs ExceptionType auftritt, wird der Code innerhalb des except-Blocks ausgeführt. Wenn keine Ausnahme auftritt, wird der except-Block übersprungen.
Ändern wir die Datei division.py aus dem vorherigen Schritt, um die ZeroDivisionError-Ausnahme zu behandeln:
Öffnen Sie die Datei
division.pyim VS Code-Editor.Ändern Sie den Code, um einen
try-except-Block einzufügen:try: numerator = 10 denominator = 0 result = numerator / denominator print(result) except ZeroDivisionError: print("Error: Cannot divide by zero.")In diesem Code enthält der
try-Block die Divisionsoperation, die möglicherweise eineZeroDivisionErrorauslöst. Derexcept-Block fängt dieZeroDivisionErrorab und gibt eine Fehlermeldung aus.Führen Sie das Skript mit dem folgenden Befehl im Terminal aus:
python division.pySie werden die folgende Ausgabe sehen:
Error: Cannot divide by zero.Anstatt abzustürzen, behandelt das Programm jetzt die
ZeroDivisionErrorelegant und gibt eine informative Meldung aus.
Dies zeigt, wie try-except-Blöcke verwendet werden können, um zu verhindern, dass Ihr Programm aufgrund von Ausnahmen abstürzt.
Den Ausnahmetyp untersuchen
In diesem Schritt lernen Sie, wie Sie den Typ einer Ausnahme (Exception) untersuchen und auf die Ausnahmemeldung innerhalb des except-Blocks zugreifen können. Dies ermöglicht es Ihnen, verschiedene Arten von Ausnahmen unterschiedlich zu behandeln und informativere Fehlermeldungen bereitzustellen.
Wenn eine Ausnahme gefangen wird, können Sie sie mithilfe des Schlüsselworts as in der except-Klausel einer Variablen zuweisen:
try:
## Code that might raise an exception
except ExceptionType as e:
## Code to handle the exception
## 'e' is the exception object
Die Variable e enthält dann das Ausnahmeobjekt, mit dem Sie Informationen über die Ausnahme, wie z. B. ihren Typ und ihre Meldung, abrufen können.
Ändern wir die Datei division.py, um den Ausnahmetyp zu untersuchen und die Ausnahmemeldung auszugeben:
Öffnen Sie die Datei
division.pyim VS Code-Editor.Ändern Sie den Code, um den Ausnahmetyp zu untersuchen und die Meldung auszugeben:
try: numerator = 10 denominator = 0 result = numerator / denominator print(result) except ZeroDivisionError as e: print(f"Error: {type(e).__name__} - {e}")In diesem Code fangen wir die
ZeroDivisionErrorund weisen sie der Variablenezu. Dann verwenden wirtype(e).__name__, um den Namen des Ausnahmetyps zu erhalten, unde, um die Ausnahmemeldung zu erhalten. Wir geben beide in einem formatierten String aus.Führen Sie das Skript mit dem folgenden Befehl im Terminal aus:
python division.pySie werden die folgende Ausgabe sehen:
Error: ZeroDivisionError - division by zeroDie Ausgabe enthält jetzt den Ausnahmetyp (
ZeroDivisionError) und die Ausnahmemeldung (division by zero).
Dies ermöglicht es Ihnen, detailliertere Informationen über den aufgetretenen Fehler bereitzustellen, was das Debuggen Ihres Codes erleichtert. Sie können diese Informationen auch nutzen, um verschiedene Arten von Ausnahmen unterschiedlich zu behandeln und für jeden Fall eine spezifischere Fehlerbehandlung bereitzustellen.
Zusammenfassung
In diesem Lab haben Sie sich mit Ausnahmen (Exceptions) in Python vertraut gemacht. Ausnahmen sind Ereignisse, die den normalen Ablauf eines Programms stören. Wenn ein Fehler auftritt, wird eine Ausnahme ausgelöst, und wenn diese nicht behandelt wird, wird das Programm beendet.
Sie haben auch gelernt, wie Sie try-except-Blöcke verwenden können, um Ausnahmen abzufangen und zu behandeln und so Programmabstürze zu vermeiden. Im Lab wurde eine ZeroDivisionError gezeigt und wie man diese mit try-except behandelt.



