Häufige Ausnahmen erkennen
In diesem Schritt untersuchen wir gängige Ausnahmen (Exceptions). Im Gegensatz zu Syntaxfehlern treten Ausnahmen während der Programmausführung auf. Der Code ist syntaktisch korrekt, aber es tritt ein Fehler auf, während er läuft.
Die Datei common_exceptions.py ist für Sie im Verzeichnis ~/project vorbereitet.
Zuerst provozieren wir einen ZeroDivisionError. Öffnen Sie common_exceptions.py im Editor und fügen Sie den folgenden Code hinzu:
numerator = 10
denominator = 0
result = numerator / denominator
print(result)
Speichern Sie die Datei und führen Sie sie im Terminal aus:
python common_exceptions.py
Das Programm beginnt mit der Ausführung, stoppt jedoch und zeigt einen ZeroDivisionError. Mathematisch ist die Division durch Null undefiniert, und Python löst diese Ausnahme aus, um das Problem anzuzeigen.
Traceback (most recent call last):
File "/home/labex/project/common_exceptions.py", line 3, in <module>
result = numerator / denominator
ZeroDivisionError: division by zero
Als Nächstes lösen wir einen NameError aus. Dies geschieht, wenn Sie versuchen, eine Variable zu verwenden, die noch nicht definiert wurde. Ersetzen Sie den Inhalt von common_exceptions.py durch Folgendes:
print(undefined_variable)
Speichern Sie die Datei und führen Sie sie aus:
python common_exceptions.py
Sie erhalten einen NameError, da der Interpreter nicht weiß, worauf sich undefined_variable bezieht.
Traceback (most recent call last):
File "/home/labex/project/common_exceptions.py", line 1, in <module>
print(undefined_variable)
NameError: name 'undefined_variable' is not defined
Nun sehen wir uns einen TypeError an. Dieser tritt auf, wenn Sie versuchen, eine Operation an einem Objekt eines ungeeigneten Typs durchzuführen. Ersetzen Sie den Inhalt von common_exceptions.py durch diesen Code:
print("Hello" + 5)
Speichern und führen Sie das Skript aus:
python common_exceptions.py
Sie sehen einen TypeError. Python erlaubt es nicht, einen String und eine Ganzzahl (integer) direkt mit + zu addieren.
Traceback (most recent call last):
File "/home/labex/project/common_exceptions.py", line 1, in <module>
print("Hello" + 5)
TypeError: can only concatenate str (not "int") to str
Schließlich demonstrieren wir einen IndexError. Dieser tritt auf, wenn Sie versuchen, auf ein Element einer Sequenz (wie einer Liste) mit einem Index zuzugreifen, der außerhalb des gültigen Bereichs liegt. Ersetzen Sie den Inhalt von common_exceptions.py durch Folgendes:
my_list = [1, 2, 3]
print(my_list[5])
Speichern und führen Sie das Skript aus:
python common_exceptions.py
Sie erhalten einen IndexError. Die Liste my_list enthält drei Elemente, daher sind ihre gültigen Indizes 0, 1 und 2. Der Zugriff auf Index 5 ist nicht möglich.
Traceback (most recent call last):
File "/home/labex/project/common_exceptions.py", line 2, in <module>
print(my_list[5])
IndexError: list index out of range
Das Verständnis dieser gängigen Ausnahmen ist ein wesentlicher Bestandteil beim Erlernen des Debuggens von Python-Code.