Python Errors and Built-in Exceptions
Table of Contents
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:
- Syntax errors
- 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.