CodeGym /Kurse /Python SELF DE /Beliebte Ausnahmen

Beliebte Ausnahmen

Python SELF DE
Level 17 , Lektion 1
Verfügbar

2.1 Erstellen von Ausnahmen

Wenn du nicht gewinnen kannst, führe. Wenn wir nicht vermeiden können, dass Fehler im Programm auftreten, müssen wir lernen, sie zu kontrollieren. Und dafür lass uns lernen, bewusst Ausnahmen zu erzeugen.

Das einfachste Beispiel für eine Ausnahme ist die Division durch Null. Und das Programm dazu ist ebenfalls simpel:


x = 100 / 0
        

Solcher Code wird mit einem Fehler ausgeführt:


Traceback (most recent call last):
    File "", line 1, in 
         x = 100 / 0
        ~~~^~   
ZeroDivisionError: division by zero
        

ZeroDivisionError ist der Name der Ausnahme, und division by zero ist deren kurze Beschreibung. Außerdem teilt Python die Zeilennummer mit, an der diese Ausnahme aufgetreten ist.

Ungültige Datentypen

Natürlich sind auch andere Ausnahmen möglich. Zum Beispiel beim Versuch, einen String und eine Zahl zu addieren:


s = "100" + 100
        

Eine TypeError Ausnahme tritt auf:


Traceback (most recent call last):
    File "", line 1, in 
TypeError: unsupported operand type(s) for +: 'str' and 'int'
        

Index außerhalb der Liste

Ein weiterer sehr verbreiteter Fehler, der eine Ausnahme erzeugt, ist der Versuch, auf ein Element zuzugreifen, das sich nicht in der Liste befindet:


my_list = [1, 2, 3]
print(my_list[10])
        

Eine IndexError Ausnahme tritt auf:


Traceback (most recent call last):
    print(my_list[10])
        ~~~~~~~^^^^
IndexError: list index out of range
        

Wie viele gibt es? Es gibt Tausende von verschiedenen Arten von Ausnahmen. Zudem kannst du deine eigenen erstellen, wenn dir die bestehenden nicht ausreichen, um eine bestimmte Situation zu beschreiben. Aber die beliebtesten sind nicht so zahlreich.

2.2 Liste der beliebtesten Ausnahmen

Es gibt viele Ausnahmen, aber für dich als Anfänger ist es nützlich, über die beliebtesten zu wissen. Unten habe ich eine Tabelle mit ihnen zusammengestellt:

Ausnahme Beschreibung
Exception Basis Klasse für alle Ausnahmen.
IndexError Tritt auf, wenn auf einen nicht existierenden Index in einer Sequenz (zum Beispiel Liste oder Tupel) zugegriffen wird.
KeyError Tritt auf, wenn auf einen nicht existierenden Schlüssel in einem Dictionary zugegriffen wird.
NameError Tritt auf, wenn auf eine nicht existierende Variable zugegriffen wird.
RuntimeError Tritt auf bei einem allgemeinen Laufzeitfehler, der nicht zu anderen Typen von Ausnahmen gehört.
StopIteration Signalisierung des Endes einer Iteration tritt auf.
SyntaxError Tritt auf bei einem Syntaxfehler im Code.
IndentationError Tritt auf bei einem Einzugsfehler im Code (Untertyp von SyntaxError).
TabError Tritt auf beim Mischen von Tabs und Leerzeichen für Einrückungen (Untertyp von IndentationError).
TypeError Tritt auf bei dem Versuch, eine Operation mit inkompatiblen Datentypen durchzuführen.
UnboundLocalError Tritt auf beim Zugriff auf eine lokale Variable vor deren Deklaration (Untertyp von NameError).
ValueError Tritt auf bei der Übergabe eines Arguments mit falschem Wert an eine Funktion oder Operation.
ZeroDivisionError Tritt auf bei der Division durch Null.

Wahrscheinlich wirst du als Anfänger im ersten Monat deines Studiums auf all diese Fehler stoßen. Und das ist überhaupt nicht schlimm – man lernt nur aus Fehlern.

2.3 Fehler im Code

Lass uns noch ein paar Situationen durchgehen, in denen im Code Fehler auftreten, damit du sie leichter in deinem eigenen Code finden kannst:

IndentationError

Dieser Fehlertyp tritt auf, wenn die Einrückungen im Code falsch sind. Zum Beispiel das Mischen von Tabs und Leerzeichen oder falsche Anzahl von Einrückungen.


def example():
    print("Hello")
     print("World")  # Falsche Einrückung löst IndentationError aus
        
example()
        

NameError


def example():
    print(undeclared_variable)  # Versuch eine nicht deklarierte Variable zu verwenden, löst NameError aus
        
example()
        

ValueError

Dieser Fehlertyp tritt auf, wenn eine Operation oder Funktion ein Argument des richtigen Typs, aber mit einem ungeeigneten Wert erhält.


def example():
    int("abc")  # Versuch, einen String, der keine Zahl ist, zu konvertieren, löst ValueError aus
        
example()
        

KeyError

Dieser Fehlertyp tritt auf, wenn das Programm versucht, auf einen nicht existierenden Schlüssel in einem Dictionary zuzugreifen.


def example():
    my_dict = {"a": 1, "b": 2}
    print(my_dict["c"])  # Versuch, auf einen nicht existierenden Schlüssel zuzugreifen, löst KeyError aus
        
example()
        

SyntaxError

Dieser Fehlertyp tritt auf, wenn es im Code einen Syntaxfehler gibt, also der Code nicht der Grammatik der Programmiersprache Python entspricht.


def example():
    eval("if True print('Hello')")  # Falsche Syntax löst SyntaxError aus
        
example()
        

Vorwarnung ist Vorsorge. Jetzt kannst du Situationen erkennen und erstellen, die Fehler auslösen. Es ist an der Zeit, zu lernen, wie man diese Fehler behandelt.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION