Python Errors and Built-in Exceptions

In diesem Tutorial lernen Sie verschiedene Arten von Fehlern und Ausnahmen kennen, die in Python integriert sind. Sie werden immer dann ausgelöst, wenn der Python-Interpreter auf Fehler stößt.

 

Wir können beim Schreiben eines Programms bestimmte Fehler machen, die zu Fehlern führen, wenn wir versuchen, es auszuführen. Ein Python-Programm wird beendet, sobald es auf einen nicht behandelten Fehler stößt. Diese Fehler lassen sich grob in zwei Klassen einteilen:

 

  1. Syntax errors
  2. Logical errors (Exceptions)

 


 

Python Syntax Errors

 

Fehler, der durch Nichtbeachtung der richtigen Struktur (Syntax) der Sprache verursacht wird, wird aufgerufen syntax error oder parsing error.

 

Schauen wir uns ein Beispiel an:

>>> if a < 3
  File "<interactive input>", line 1
    if a < 3
           ^
SyntaxError: invalid syntax

 

Wie im Beispiel gezeigt, zeigt ein Pfeil an, wo der Parser auf den Syntaxfehler gestoßen ist.

Wir können hier feststellen, dass ein Doppelpunkt : fehlt in der if anweisung.

 


 

 

Python Logical Errors (Exceptions)

Fehler, die zur Laufzeit (nach Bestehen des Syntaxtests) auftreten, werden aufgerufen exceptions or logische Fehler.

 

Sie treten zum Beispiel auf, wenn wir versuchen, eine Datei (zum Lesen) zu öffnen, die nicht existiert (FileNotFoundError), Versuch, eine Zahl durch Null zu dividieren (ZeroDivisionError), oder versuchen Sie, ein nicht vorhandenes Modul zu importieren (ImportError).

 

Immer, wenn diese Arten von Laufzeitfehlern auftreten, erzeugt Python ein Ausnahmeobjekt. Wenn es nicht ordnungsgemäß behandelt wird, gibt es einen Traceback zu diesem Fehler aus, zusammen mit einigen Details darüber, warum dieser Fehler aufgetreten ist.

Sehen wir uns an, wie Python diese Fehler behandelt:

>>> 1 / 0
Traceback (most recent call last):
 File "<string>", line 301, in runcode
 File "<interactive input>", line 1, in <module>
ZeroDivisionError: division by zero

>>> open("imaginary.txt")
Traceback (most recent call last):
 File "<string>", line 301, in runcode
 File "<interactive input>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'imaginary.txt'

 


 

 

Python Built-in Exceptions

 

Unzulässige Operationen können Ausnahmen auslösen. Es gibt viele eingebaute Ausnahmen in Python, die ausgelöst werden, wenn entsprechende Fehler auftreten. Wir können alle integrierten Ausnahmen mit dem integrierten anzeigen local() Funktion wie folgt:

print(dir(locals()['__builtins__']))

 

locals()['__builtins__'] gibt ein Modul mit integrierten Ausnahmen, Funktionen und Attributen zurück. dir ermöglicht es uns, diese Attribute als Strings aufzulisten.

Einige der häufigsten integrierten Ausnahmen in der Python-Programmierung zusammen mit den Fehlern, die sie verursachen, sind unten aufgeführt:

 

Exception Cause of Error
AssertionError Wird ausgelöst, wenn ein assert anweisung versagt.
AttributeError Wird ausgelöst, wenn die Zuweisung eines Attributs oder einer Referenz fehlschlägt.
EOFError Wird ausgelöst, wenn die input() Funktion trifft auf Dateiende-Bedingung.
FloatingPointError Wird ausgelöst, wenn eine Fließkommaoperation fehlschlägt.
GeneratorExit Erhöhen, wenn ein generator’s close() methode aufgerufen wird.
ImportError Wird ausgelöst, wenn das importierte Modul nicht gefunden wird.
IndexError Wird ausgelöst, wenn der Index einer Sequenz außerhalb des Bereichs liegt.
KeyError Wird ausgelöst, wenn ein Schlüssel in einem Wörterbuch nicht gefunden wird.
KeyboardInterrupt Wird ausgelöst, wenn der Benutzer die Unterbrechungstaste drückt (Ctrl+C oder Delete).
MemoryError Wird ausgelöst, wenn einer Operation der Speicher ausgeht.
NameError Wird ausgelöst, wenn eine Variable im lokalen oder globalen Bereich nicht gefunden wird.
NotImplementedError Wird von abstrakten Methoden ausgelöst.
OSError Wird ausgelöst, wenn der Systembetrieb einen systembezogenen Fehler verursacht.
OverflowError Wird ausgelöst, wenn das Ergebnis einer arithmetischen Operation zu groß ist, um dargestellt zu werden.
ReferenceError Wird ausgelöst, wenn ein schwacher Referenz-Proxy verwendet wird, um auf einen Garbage-Collected-Referenten zuzugreifen.
RuntimeError Wird ausgelöst, wenn ein Fehler in keine andere Kategorie fällt.
StopIteration Aufgezogen von next() Funktion, um anzuzeigen, dass es kein weiteres Element gibt, das vom Iterator zurückgegeben werden kann.
SyntaxError Wird vom Parser ausgelöst, wenn ein Syntaxfehler auftritt.
IndentationError Wird ausgelöst, wenn eine falsche Einrückung vorliegt.
TabError Wird ausgelöst, wenn die Einrückung aus inkonsistenten Tabulatoren und Leerzeichen besteht.
SystemError Wird ausgelöst, wenn der Interpreter einen internen Fehler feststellt.
SystemExit Aufgezogen von sys.exit() Funktion.
TypeError Wird ausgelöst, wenn eine Funktion oder Operation auf ein Objekt vom falschen Typ angewendet wird.
UnboundLocalError Wird ausgelöst, wenn in einer Funktion oder Methode auf eine lokale Variable verwiesen wird, aber kein Wert an diese Variable gebunden wurde.
UnicodeError Wird ausgelöst, wenn ein Unicode-bezogener Kodierungs- oder Dekodierungsfehler auftritt.
UnicodeEncodeError Wird ausgelöst, wenn bei der Kodierung ein Unicode-bezogener Fehler auftritt.
UnicodeDecodeError Wird ausgelöst, wenn bei der Dekodierung ein Unicode-bezogener Fehler auftritt.
UnicodeTranslateError Wird ausgelöst, wenn beim Übersetzen ein Unicode-bezogener Fehler auftritt.
ValueError Wird ausgelöst, wenn eine Funktion ein Argument des richtigen Typs, aber des falschen Werts erhält.
ZeroDivisionError Wird ausgelöst, wenn der zweite Operand einer Division oder Modulo-Operation Null ist.

 

Bei Bedarf können wir auch eigene Ausnahmen in Python definieren. Um mehr über sie zu erfahren, besuchen Sie Python User-defined Exceptions.

 

Wir können diese eingebauten und benutzerdefinierten Ausnahmen in Python behandeln, indem wir try, except and finally Aussagen. Um mehr über sie zu erfahren, besuchen Sie Python try, except and finally statements.