Lädt...

Python-Fehlercodes

Python-Fehlercodes sind spezifische Ausnahmen und Fehlermeldungen, die vom Interpreter generiert werden, wenn ein Programm auf unerwartete Situationen stößt. Das Verständnis dieser Fehler ist für fortgeschrittene Entwickler entscheidend, um effizientes Debugging, stabile Programme und eine robuste Fehlerbehandlung zu gewährleisten. Fehler treten häufig auf, wenn die Syntax ungültig ist, falsche Datentypen verwendet werden, auf nicht vorhandene Ressourcen zugegriffen wird oder logische Fehler im Code vorliegen. Wichtige Konzepte sind Syntax, Ausnahmetypen, Debugging-Techniken und effektive Fehlerbehandlung. Durch die Beherrschung von Python-Fehlercodes können Entwickler die Fehlerursache schnell identifizieren, gezielt try/except-Blöcke einsetzen und Diagnoseinformationen für den produktiven Einsatz protokollieren. Dieses Referenzdokument vermittelt eine umfassende Übersicht über gängige Fehler, deren Auslösebedingungen, Debugging-Strategien und Best Practices in der Backend-Entwicklung. Leser lernen, stabile und zuverlässige Systeme zu erstellen, die Risiken von Abstürzen minimieren und die Datensicherheit gewährleisten.

Betrachten wir ein Backend-System, das Benutzereingaben verarbeitet, Dateien liest und auf eine Datenbank zugreift. Fehler wie FileNotFoundError, ValueError oder ZeroDivisionError können auftreten. Um die Stabilität des Systems zu gewährleisten, werden potenziell fehlerhafte Operationen in einen try-Block gelegt, wobei jeder spezifische Ausnahmetyp mit einem eigenen except-Block behandelt wird. So können spezifische Reaktionen implementiert, Debugging-Informationen protokolliert und alternative Maßnahmen ergriffen werden. Der finally-Block stellt sicher, dass kritische Ressourcen wie Dateien oder Datenbankverbindungen unabhängig vom Auftreten eines Fehlers korrekt freigegeben werden. Dieses Vorgehen verhindert Programmabstürze, verbessert die Zuverlässigkeit und Wartbarkeit. In realen Backend-Anwendungen ist eine präzise Fehlerbehandlung entscheidend für Stabilität, Performance und Vertrauen der Anwender.

Example

python
PYTHON Code
def daten_verarbeiten():
try:
# NameError: Verwendung einer nicht definierten Variable
print(nicht_definierte_variable)

# ZeroDivisionError: Division durch Null
ergebnis = 10 / 0

# ValueError: ungültige Typkonvertierung
zahl = int("abc")

# FileNotFoundError: Datei existiert nicht
with open("nicht_vorhandene_datei.txt", "r") as f:
inhalt = f.read()

# AttributeError: Aufruf einer nicht existierenden Methode
[].appendx(1)

except NameError as ne:
print(f"Gefangener NameError: {ne}")
except ZeroDivisionError as zde:
print(f"Gefangener ZeroDivisionError: {zde}")
except ValueError as ve:
print(f"Gefangener ValueError: {ve}")
except FileNotFoundError as fe:
print(f"Gefangener FileNotFoundError: {fe}")
except AttributeError as ae:
print(f"Gefangener AttributeError: {ae}")
except Exception as e:
print(f"Gefangene allgemeine Ausnahme: {e}")
finally:
print("Aufräumoperationen werden ausgeführt (Dateien schließen, Ressourcen freigeben)")

daten_verarbeiten()

📊 Comprehensive Reference

Error Beschreibung Wann es auftritt Beispiel Hinweise
SyntaxError Syntaxfehler Ungültiger Code eval('x === 2') Wird beim Kompilieren erkannt
IndentationError Einrückungsfehler Inkonsistente Einrückung if True:\nprint("Hi") Unterklasse von SyntaxError
TabError Tab- und Leerzeichen gemischt Gemischte Tabs und Leerzeichen <tab> <space> print("Hi") Einheitliche Einrückung nötig
NameError Variable nicht definiert Zugriff auf nicht deklarierte Variable print(x) Häufig beim Debugging
TypeError Falscher Typ Operation mit inkompatiblen Typen 5 + "5" Python ist dynamisch typisiert
ValueError Ungültiger Wert Falsche Konvertierung int("abc") Eingaben prüfen
IndexError Index außerhalb Bereich Liste wird außerhalb Bereich zugegriffen lst = []; lst[1] Länge prüfen
KeyError Fehlender Schlüssel Schlüssel nicht im Dict d = {}; d['x'] dict.get() kann helfen
AttributeError Attribut existiert nicht Objekt hat Attribut/Methoden nicht [].appendx(1) Methodennamen prüfen
ZeroDivisionError Division durch Null Divisor = 0 10 / 0 Divisor prüfen
ImportError Modul nicht gefunden Fehlendes Modul import nicht_modul Installation prüfen
ModuleNotFoundError Modul fehlt Nicht vorhandenes Modul import nicht_existentes_modul Python 3.6+
FileNotFoundError Datei nicht vorhanden Öffnen einer nicht existierenden Datei open("nofile.txt") Pfad prüfen
IsADirectoryError Datei erwartet, Verzeichnis gegeben open("ordner") OS-spezifisch
NotADirectoryError Verzeichnis erwartet, Datei gegeben os.listdir("file.txt") OS-spezifisch
PermissionError Unzureichende Berechtigung Zugriff auf Datei verboten open("/root/file") Berechtigungen prüfen
OSError Systemfehler Betriebssystemproblem os.remove("/root/file") Basis vieler Fehler
OverflowError Numerische Überlauf Wert zu groß 2.0**10000 Selten in Python 3
RecursionError Zu tiefe Rekursion Endlos rekursive Funktion def f(): f(); f() sys.setrecursionlimit()
MemoryError Nicht genügend Speicher Zu große Objekterstellung a = 'a' * 10**10 Systemabhängig
StopIteration Iterator erschöpft Next auf leerem Iterator next(iter([])) Eigene Iteratoren
AssertionError Assertion fehlgeschlagen assert False Bedingung prüfen
FloatingPointError Gleitkommafehler Ungültige FP-Operation numpy.seterr(all='raise') NumPy
UnicodeError Kodierungs-/Dekodierungsfehler "ü".encode("ascii") Kodierung prüfen
UnicodeDecodeError Dekodierung fehlgeschlagen b'\xff'.decode('utf-8') Datei lesen
UnicodeEncodeError Kodierung fehlgeschlagen "ü".encode("ascii") Falsches Encoding
RecursionWarning Warnung Rekursion Zu tiefe Rekursion import warnings Nicht fatal
DeprecationWarning Veraltete Funktion Verwendung veralteter Funktion warnings.warn("deprecated") Migration nötig
RuntimeWarning Runtime-Warnung Potentielles Problem import warnings Nicht fatal
FutureWarning Zukünftige Warnung Funktion ändert sich warnings.warn("future") Kompatibilität prüfen
UserWarning Benutzerwarnung Eigene Warnungen warnings.warn("user") Nicht fatal
PendingDeprecationWarning Bald veraltet Funktion wird bald veraltet warnings.warn("pending") Selten
ResourceWarning Ressource nicht freigegeben Datei nicht geschlossen open("file") Python 3+
ArithmeticError Arithmetischer Fehler Fehlerhafte mathematische Operation int("x")/0 Basis arithm. Fehler
BufferError Pufferfehler Ungültige Pufferoperation memoryview(b'').release() Selten
ConnectionError Verbindungsfehler Netzwerkfehler requests.get("bad_url") Basis Netzwerkfehler
BrokenPipeError Pipe unterbrochen Schreiben in geschlossene Pipe os.write(fd, b'data') Unix
ChildProcessError Fehler Kindprozess Fehler Kindprozess os.waitpid(-1) Selten
EOFError Unerwartetes Dateiende Eingabeende input() EOF Leere Eingabe
EnvironmentError Umgebungsfehler OS/Umgebung os.remove("/root/file") OSError Basis
GeneratorExit Generator geschlossen gen.close() Mit Generatoren
IOError I/O Fehler Fehler beim Lesen/Schreiben open("/root/file") Python 3 -> OSError
InterruptedError Unterbrochen Systemaufruf unterbrochen os.read(fd, 0) Unix
LookupError Suchfehler Ungültige Suche d['x'] Basis Lookup Fehler
ReferenceError Ungültige Referenz Schwache Referenz abgelaufen import weakref Selten
RuntimeError Laufzeitfehler raise RuntimeError() Allgemeiner Fehler
StopAsyncIteration Async Iterator beendet async for Python 3.5+
SyntaxWarning Syntaxwarnung Fragwürdige Syntax warnings.warn("syntax") Stoppt Programm nicht
SystemError Systemfehler Interner Python Fehler sys._getframe(0) Selten
SystemExit Systemausstieg sys.exit() Beendet Programm
TimeoutError Timeout Operation überschreitet Zeit socket.settimeout() Netzwerkaufruf
UnboundLocalError Nicht gebundene lokale Variable Vor Zuweisung verwendet x=1; def f(): print(x); x=2 NameError Subclass
ZeroDivisionError Division durch Null Divisor = 0 10 / 0 Divisor prüfen

📊 Complete Properties Reference

Error Exception Type Default Behavior Description Compatibility
SyntaxError Exception Programm stoppt Syntaxfehler Alle Python-Versionen
IndentationError SyntaxError Programm stoppt Einrückungsfehler Alle Python-Versionen
TabError IndentationError Programm stoppt Tabs und Leerzeichen gemischt Alle Python-Versionen
NameError Exception Programm stoppt Variable nicht definiert Alle Python-Versionen
TypeError Exception Programm stoppt Falscher Typ Alle Python-Versionen
ValueError Exception Programm stoppt Ungültiger Wert Alle Python-Versionen
IndexError Exception Programm stoppt Index außerhalb Bereich Alle Python-Versionen
KeyError Exception Programm stoppt Fehlender Schlüssel Alle Python-Versionen
AttributeError Exception Programm stoppt Attribut/Methoden fehlen Alle Python-Versionen
ZeroDivisionError ArithmeticError Programm stoppt Division durch Null Alle Python-Versionen
ImportError Exception Programm stoppt Modul nicht gefunden Alle Python-Versionen
ModuleNotFoundError ImportError Programm stoppt Modul fehlt Python 3.6+
FileNotFoundError OSError Programm stoppt Datei nicht vorhanden Python 3+
IsADirectoryError OSError Programm stoppt Datei erwartet, Verzeichnis gegeben Python 3+
NotADirectoryError OSError Programm stoppt Verzeichnis erwartet, Datei gegeben Python 3+
PermissionError OSError Programm stoppt Unzureichende Berechtigung Python 3+
OSError Exception Programm stoppt Systemfehler Alle Python-Versionen
OverflowError ArithmeticError Programm stoppt Numerischer Überlauf Alle Python-Versionen
RecursionError RuntimeError Programm stoppt Zu tiefe Rekursion Python 3+
MemoryError Exception Programm stoppt Nicht genügend Speicher Alle Python-Versionen
StopIteration Exception Programm stoppt Iterator erschöpft Alle Python-Versionen
AssertionError Exception Programm stoppt Assertion fehlgeschlagen Alle Python-Versionen
FloatingPointError ArithmeticError Programm stoppt Gleitkommafehler Alle Python-Versionen
UnicodeError ValueError Programm stoppt Kodierungs-/Dekodierungsfehler Alle Python-Versionen
UnicodeDecodeError UnicodeError Programm stoppt Dekodierung fehlgeschlagen Alle Python-Versionen
UnicodeEncodeError UnicodeError Programm stoppt Kodierung fehlgeschlagen Alle Python-Versionen
RecursionWarning Warning Programm läuft weiter Warnung Rekursion Alle Python-Versionen
DeprecationWarning Warning Programm läuft weiter Veraltete Funktion Alle Python-Versionen
RuntimeWarning Warning Programm läuft weiter Runtime-Warnung Alle Python-Versionen
FutureWarning Warning Programm läuft weiter Zukünftige Warnung Alle Python-Versionen
UserWarning Warning Programm läuft weiter Benutzerwarnung Alle Python-Versionen
PendingDeprecationWarning Warning Programm läuft weiter Bald veraltet Alle Python-Versionen
ResourceWarning Warning Programm läuft weiter Ressource nicht freigegeben Python 3+
ArithmeticError Exception Programm stoppt Arithmetischer Fehler Alle Python-Versionen
BufferError Exception Programm stoppt Pufferfehler Alle Python-Versionen
ConnectionError OSError Programm stoppt Verbindungsfehler Python 3+
BrokenPipeError OSError Programm stoppt Pipe unterbrochen Python 3+
ChildProcessError OSError Programm stoppt Fehler Kindprozess Python 3+
EOFError Exception Programm stoppt Unerwartetes Dateiende Alle Python-Versionen
EnvironmentError OSError Programm stoppt Umgebungsfehler Python 3+
GeneratorExit Exception Programm stoppt Generator geschlossen Alle Python-Versionen
IOError OSError Programm stoppt I/O Fehler Python 3+
InterruptedError OSError Programm stoppt Unterbrochen Python 3+
LookupError Exception Programm stoppt Suchfehler Alle Python-Versionen
ReferenceError Exception Programm stoppt Ungültige Referenz Python 3+
RuntimeError Exception Programm stoppt Laufzeitfehler Alle Python-Versionen
StopAsyncIteration Exception Programm stoppt Async Iterator beendet Python 3.5+
SyntaxWarning Warning Programm läuft weiter Syntaxwarnung Alle Python-Versionen
SystemError Exception Programm stoppt Systemfehler Alle Python-Versionen
SystemExit Exception Programm stoppt Systemausstieg Alle Python-Versionen
TimeoutError OSError Programm stoppt Timeout Python 3+
UnboundLocalError NameError Programm stoppt Nicht gebundene lokale Variable Python 3+
ZeroDivisionError ArithmeticError Programm stoppt Division durch Null Alle Python-Versionen

🧠 Testen Sie Ihr Wissen

Bereit zum Start

Test Your Knowledge

Testen Sie Ihr Wissen über Python-Fehlercodes

3
Fragen
🎯
70%
Zum Bestehen
♾️
Zeit
🔄
Versuche

📝 Anweisungen

  • Lesen Sie jede Frage sorgfältig
  • Wählen Sie die beste Antwort für jede Frage
  • Sie können das Quiz so oft wiederholen, wie Sie möchten
  • Ihr Fortschritt wird oben angezeigt