Python-Fehler und eingebaute Ausnahmen
Python-Fehler und eingebaute 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 es auf einen nicht behandelten Fehler stößt. Diese Fehler können grob in zwei Klassen eingeteilt werden:
- Syntaxfehler
- Logische Fehler (Ausnahmen)
Python-Syntaxfehler
Ein Fehler, der dadurch verursacht wird, dass die richtige Struktur (Syntax) der Sprache nicht befolgt wird, wird als Syntaxfehler bezeichnet oder Parsing-Fehler .
Sehen 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 if
Erklärung.
Logische Python-Fehler (Ausnahmen)
Fehler, die zur Laufzeit (nach Bestehen des Syntaxtests) auftreten, werden als Ausnahmen bezeichnet oder logische Fehler .
Sie treten zum Beispiel auf, wenn wir versuchen, eine Datei (zum Lesen) zu öffnen, die nicht existiert (FileNotFoundError
), versuchen Sie, eine Zahl durch Null zu teilen (ZeroDivisionError
), oder versuchen Sie, ein nicht vorhandenes Modul zu importieren (ImportError
).
Wann immer diese Arten von Laufzeitfehlern auftreten, erstellt Python ein Ausnahmeobjekt. Wenn es nicht richtig gehandhabt wird, gibt es eine Rückverfolgung zu diesem Fehler zusammen mit einigen Details darüber aus, warum dieser Fehler aufgetreten ist.
Schauen 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'
Integrierte Python-Ausnahmen
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 eingebauten Ausnahmen mit dem eingebauten local()
anzeigen funktionieren 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 üblichen integrierten Ausnahmen in der Python-Programmierung zusammen mit den Fehlern, die sie verursachen, sind unten aufgeführt:
Ausnahme | Fehlerursache |
---|---|
AssertionError | Erhöht wenn ein assert Anweisung schlägt fehl. |
AttributeError | Wird ausgelöst, wenn die Attributzuweisung oder Referenz fehlschlägt. |
EOFError | Erhöht bei input() Funktion trifft Ende-der-Datei-Bedingung. |
FloatingPointError | Wird ausgelöst, wenn eine Gleitkommaoperation fehlschlägt. |
GeneratorExit | Erhöhen, wenn ein Generator close() ist Methode aufgerufen wird. |
ImportError | Wird ausgelöst, wenn das importierte Modul nicht gefunden wird. |
IndexError | Ausgelöst, wenn der Index einer Sequenz außerhalb des zulässigen Bereichs liegt. |
KeyError | Wird ausgelöst, wenn ein Schlüssel nicht in einem Wörterbuch gefunden wird. |
KeyboardInterrupt | Wird ausgelöst, wenn der Benutzer die Unterbrechungstaste drückt (Ctrl+C oder Delete ). |
MemoryError | Wird ausgelöst, wenn für eine Operation der Speicherplatz ausgeht. |
NameError | Wird ausgelöst, wenn eine Variable nicht im lokalen oder globalen Gültigkeitsbereich gefunden wird. |
NotImplementedError | Aufgezogen durch abstrakte Methoden. |
OSError | Wird ausgelöst, wenn der Systembetrieb einen systembezogenen Fehler verursacht. |
OverflowError | 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 Referent mit Garbage Collection zuzugreifen. |
RuntimeError | Wird ausgelöst, wenn ein Fehler in keine andere Kategorie fällt. |
StopIteration | Erhöht von next() Funktion, um anzuzeigen, dass es kein weiteres Element gibt, das vom Iterator zurückgegeben werden soll. |
SyntaxError | Wird vom Parser ausgelöst, wenn ein Syntaxfehler auftritt. |
IndentationError | Erhöht bei falscher Einrückung. |
TabError | Wird ausgelöst, wenn der Einzug aus inkonsistenten Tabulatoren und Leerzeichen besteht. |
SystemError | Wird ausgelöst, wenn der Interpreter einen internen Fehler feststellt. |
SystemExit | Erzogen von sys.exit() Funktion. |
TypeError | Wird ausgelöst, wenn eine Funktion oder Operation auf ein Objekt des falschen Typs 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 Codierungs- oder Decodierungsfehler auftritt. |
UnicodeEncodeError | Wird ausgelöst, wenn während der Kodierung ein Unicode-bezogener Fehler auftritt. |
UnicodeDecodeError | Wird ausgelöst, wenn während der Dekodierung ein Unicode-bezogener Fehler auftritt. |
UnicodeTranslateError | Wird ausgelöst, wenn während der Übersetzung ein Unicode-bezogener Fehler auftritt. |
ValueError | Wird ausgelöst, wenn eine Funktion ein Argument des richtigen Typs, aber eines falschen Werts erhält. |
ZeroDivisionError | Wird ausgelöst, wenn der zweite Operand der Division oder Modulo-Operation Null ist. |
Bei Bedarf können wir auch eigene Ausnahmen in Python definieren. Um mehr darüber zu erfahren, besuchen Sie Benutzerdefinierte Python-Ausnahmen.
Wir können diese eingebauten und benutzerdefinierten Ausnahmen in Python mit try
handhaben , except
und finally
Aussagen. Um mehr über sie zu erfahren, besuchen Sie Python try, except und finally Statements.
Python
- Python-Schlüsselwörter und -Identifikatoren
- Python-Anweisung, Einrückung und Kommentare
- Python-Variablen, -Konstanten und -Literale
- Python-Typkonvertierung und Typumwandlung
- Python-Eingabe, -Ausgabe und -Import
- Python Globale, lokale und nicht lokale Variablen
- Python-Zahlen, Typumwandlung und Mathematik
- Python-Verzeichnis- und Dateiverwaltung
- Benutzerdefinierte Python-Ausnahmen
- Wie bekomme ich das aktuelle Datum und die Uhrzeit in Python?