Python-Fehler und integrierte Ausnahmen

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.

Video: Python-Ausnahmebehandlung

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 ein nicht behandelter Fehler auftritt. Diese Fehler können grob in zwei Klassen eingeteilt werden:

  1. Syntaxfehler
  2. Logische Fehler (Ausnahmen)

Python-Syntaxfehler

Ein Fehler, der dadurch verursacht wird, dass die richtige Struktur (Syntax) der Sprache nicht eingehalten wird, wird als Syntaxfehler oder Analysefehler bezeichnet .

Schauen wir uns ein Beispiel an:

 >>> if a < 3 File "", 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 :in der ifAnweisung fehlt .

Python Logical Errors (Ausnahmen)

Fehler, die zur Laufzeit (nach Bestehen des Syntaxtests) auftreten, werden als Ausnahmen oder logische Fehler bezeichnet .

Sie treten beispielsweise auf, wenn wir versuchen, eine nicht vorhandene Datei (zum Lesen) zu öffnen ( FileNotFoundError), eine Zahl durch Null zu teilen ( ZeroDivisionError) oder ein nicht vorhandenes Modul zu importieren ( ImportError).

Immer wenn diese Arten von Laufzeitfehlern auftreten, erstellt Python ein Ausnahmeobjekt. Wenn dies nicht richtig gehandhabt wird, wird ein Traceback zu diesem Fehler zusammen mit einigen Details darüber ausgegeben, warum dieser Fehler aufgetreten ist.

Schauen wir uns an, wie Python diese Fehler behandelt:

 >>> 1 / 0 Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in ZeroDivisionError: division by zero >>> open("imaginary.txt") Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in FileNotFoundError: (Errno 2) No such file or directory: 'imaginary.txt'

Integrierte Python-Ausnahmen

Illegale Operationen können Ausnahmen auslösen. In Python gibt es viele integrierte Ausnahmen, die ausgelöst werden, wenn entsprechende Fehler auftreten. Mit der integrierten local()Funktion können wir alle integrierten Ausnahmen wie folgt anzeigen :

 print(dir(locals()('__builtins__')))

locals()('__builtins__')gibt ein Modul mit integrierten Ausnahmen, Funktionen und Attributen zurück. dirermöglicht es uns, diese Attribute als Zeichenfolgen aufzulisten.

Einige der häufigsten integrierten Ausnahmen in der Python-Programmierung sowie der Fehler, der sie verursacht, sind nachstehend aufgeführt:

Ausnahme Fehlerursache
AssertionError Wird ausgelöst, wenn eine assertAnweisung fehlschlägt.
AttributeError Wird ausgelöst, wenn die Attributzuweisung oder Referenz fehlschlägt.
EOFError Wird ausgelöst, wenn die input()Funktion den Dateiendezustand erreicht.
FloatingPointError Wird ausgelöst, wenn eine Gleitkommaoperation fehlschlägt.
GeneratorExit Erhöhen Sie, wenn die close()Methode eines Generators 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 Interrupt-Taste ( Ctrl+Coder Delete) drückt .
MemoryError Wird ausgelöst, wenn eine Operation nicht genügend Speicher hat.
NameError Wird ausgelöst, wenn eine Variable nicht im lokalen oder globalen Bereich gefunden wird.
NotImplementedError Mit abstrakten Methoden erzogen.
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 durch Müll gesammelten Referenz zuzugreifen.
RuntimeError Wird ausgelöst, wenn ein Fehler nicht in eine andere Kategorie fällt.
StopIteration Wird durch die next()Funktion ausgelöst, um anzuzeigen, dass vom Iterator kein weiteres Element 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 der Einzug aus inkonsistenten Tabulatoren und Leerzeichen besteht.
SystemError Wird ausgelöst, wenn der Interpreter einen internen Fehler erkennt.
SystemExit Durch sys.exit()Funktion ausgelöst .
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, an diese Variable jedoch kein Wert gebunden wurde.
UnicodeError Wird ausgelöst, wenn ein Unicode-bezogener Codierungs- oder Decodierungsfehler auftritt.
UnicodeEncodeError Wird ausgelöst, wenn während der Codierung ein Unicode-Fehler auftritt.
UnicodeDecodeError Wird ausgelöst, wenn beim Decodieren ein Unicode-Fehler auftritt.
UnicodeTranslateError Wird ausgelöst, wenn während der Übersetzung ein Unicode-Fehler auftritt.
ValueError Wird ausgelöst, wenn eine Funktion ein Argument vom richtigen Typ, aber vom falschen Wert erhält.
ZeroDivisionError Wird ausgelöst, wenn der zweite Operand der Divisions- oder Modulo-Operation Null ist.

Bei Bedarf können wir auch unsere eigenen Ausnahmen in Python definieren. Weitere Informationen finden Sie unter Benutzerdefinierte Python-Ausnahmen.

Wir können diese integrierten und benutzerdefinierte Ausnahmen in Python behandeln try, exceptund finallyAussagen. Um mehr über sie zu erfahren, besuchen Sie Python try, außer und schließlich Anweisungen.

Interessante Beiträge...