Zum Inhalt springen

Python Try Except – einfach erklärt!

  • Python

Python Try Except ist eine Möglichkeit sogenannte Ausnahmen (engl.: Exceptions) in Python Programmen zu handhaben, damit die Anwendung nicht abstürzt. Mithilfe von Python Try Except können entstehende Ausnahmen gezielt abgefangen und behandelt werden.

Was ist der Unterschied zwischen Syntax Errors und Exceptions?

Wie wir wahrscheinlich schon alle leidvoll erfahren mussten, beendet Python ein laufendes Programm, sobald ein Fehler oder eine Ausnahme auftritt. Hierbei muss eine wichtige Unterscheidung getroffen werden. Der Code kann zum einen aufgrund von Syntaxfehlern stoppen, also durch schlichtweg falsch geschriebenen Code, der nicht interpretiert werden kann, oder eben durch Ausnahmen, also syntaktisch richtige Codebestandteile, die jedoch während der Ausführung zu Problemen führen.

Einen Syntax Error kann man beispielsweise durch falsch gesetzte Klammern herbeiführen:

Python Try Except

Bei Ausnahmen hingegen, handelt es sich um Fehler, die während der Ausführung der Anwendung aufkommen, obwohl der Code syntaktisch richtig ist. Das kann zum Beispiel passieren, wenn man versucht einen String und eine Zahl zusammen zu addieren. Der Code ist an sich richtig geschrieben, aber die Umsetzung dieser Operation ist nicht möglich:

Python Try Except

Welche Arten von Exceptions gibt es in Python?

In Python gibt es viele verschiedene Arten von Ausnahmen, die bei der Ausführung von Code auftreten können. Die folgende Aufzählung beschreibt die häufigsten, jedoch nicht alle, Arten von Exceptions:

  • AssertionError: Diese Exception tritt auf, wenn der Befehl „assert“ nicht richtig verwendet wurde oder Fehler erzeugt.
  • ImportError: Wenn es Probleme beim Import von Modulen gibt, erhält man einen Import Error. Dies kann zum Beispiel passieren, wenn ein Modul, wie Pandas, noch nicht installiert wurde, falsche oder nicht existierende Funktionen aus einem Modul geladen werden sollen oder das Modul mit dem angegebenen Namen schlicht nicht existiert.
  • IndexError: Bei der Arbeit mit Python Datenobjekten, die einen Index besitzen, wie beispielsweise Python Tuple oder Python Listen, kann es zu einem IndexError kommen, wenn Indexes benutzt werden, die nicht im Objekt gefunden werden können.
  • KeyError: Ähnlich zum IndexError taucht der KeyError bei der Arbeit mit Python Dictionaries auf, wenn ein Schlüssel nicht in einem Dictionary Objekt gefunden werden konnte.
  • MemoryError: Wenn der Arbeitsspeicher der Maschine nicht mehr ausreicht, um das Python Programm weiterhin auszuführen, kommt es zu einem MemoryError.
  • UnboundLocalError: Wenn man mit lokalen Variablen arbeitet, kann es zu einem UnboundLocalError kommen, sobald man auf eine Variable referenziert, auf die im Vorhinein noch gar nicht definiert wurde, also der noch kein Wert zugeordnet werden konnte.

Wie funktioniert Python Try Except?

Die Python Try Except Funktionalität ermöglicht es, mit möglichen Exceptions gezielt umgehen zu können, indem man eine Routine definiert, die den Umgang mit Ausnahme genauestens beschreibt. Das ist vor allem dann sinnvoll, wenn die Wahrscheinlichkeit für eine Exception sehr hoch ist oder eine Unterbrechung des Programms auf jeden Fall verhindert werden soll.

Dazu verwendet man zwei Blöcke: Try und Except. Im Try-Block wird der Code hinzugefügt, der möglicherweise Exceptions bei der Ausführung hervorrufen kann. Wenn dieser Code-Block ohne Probleme abläuft, wird der nachfolgende Except-Block einfach übersprungen und der Code danach ausgeführt. Im Fall, dass es im Try-Block jedoch zu einer Ausnahme kommt, wird automatisch der Code im Except-Block ausgeführt.

Python Try Except

In diesem Fall wird die Addition von a und b immer ausgeführt, außer wenn Werte für die beiden Variablen übergeben werden, die keine Zahl sind. Dann würde es eigentlich einen ValueError geben, der jedoch von unserer Python Try Except Schleife abgefangen wird. Statt dem ValueError wird dann der Text „a, b or both were not numbers. Please try again with different values“ ausgegeben.

Jedoch muss man in einer Python Try Except Schleife nicht unbedingt die konkrete Ausnahme angeben, auf die reagiert werden soll, es kann auch so definiert werden, dass es bei jeglicher Exception den Except-Block ausführt. Außerdem kann mithilfe von „finally“ eine Routine definiert werden, für den Fall, dass das Programm ohne Exception ausgekommen ist.

Python Try Except

In welchen Anwendungen ist es sinnvoll Python Try Except zu nutzen?

Im Bereich von Data Science macht es in vielen Anwendungen Sinn, eine Python Try Except Schleife zu nutzen, um das Programm nicht vorzeitig zu beenden:

  • Aufbereitung von großen Datensätzen: Wenn man für Machine Learning große Datensätze vorbereiten will, um sie als Trainingsdatensatz zu nutzen, kann die Aufbereitung nicht selten auch mehrere Stunden in Anspruch nehmen. Je nach Qualität des Datensatzes, stimmen nicht alle Datentypen mit den vorgegebenen überein. Gleichzeitig will man jedoch verhindern, dass das Programm nach der Hälfte der Zeit stoppt und man es nicht mitbekommt. Dafür kann kann man eine Python Try Except Schleife nutzen, um einzelne Datensätze, deren Datenqualität nicht stimmt und zu Exceptions führen würden, einfach zu überspringen.
  • Logging von Software: Auch hier wird die Python Try Except Schleife benötigt, da die produktive Anwendung weiterhin funktionieren soll. Über den Except Block lässt sich der Fehler in den Logs ausgeben und kann dann ausgewertet werden. Nachdem der Fehler in einer neueren Version behoben wurde, lässt sich der neue Stand deployen und stellt sicher, dass die Downtime der Anwendung so gering wie möglich ist.

Das solltest Du mitnehmen

  • Python Try Except ist eine Möglichkeit sogenannte Ausnahmen (engl.: Exceptions) in Python Programmen zu handhaben, damit die Anwendung nicht abstürzt.
  • Mit dem Try Block werden die Zeilen umschlossen, die potenziell zu Exceptions führen könnten. Im Except Block hingegen wird der Code definiert, der im Fehlerfall ausgeführt werden soll. Wenn es zu keiner Ausnahme kommt, wird einfach der Code nach der Python Try Except Schleife ausgeführt.
  • Zusätzlich kann man mit dem Befehl „finally“ definieren, was passieren soll, wenn es im Try Block zu keinem Fehler kommt.

Danke an Deepnote für die Unterstützung bei diesem Artikel! Deepnote bietet mir die Möglichkeit Python Code einfach und schnell auf der Website einzubinden und außerdem die dazugehörigen Notebooks in der Cloud zu hosten.

Andere Beiträge zum Thema Python Try Except

  • Bei w3schools findest Du einen ausführlichen Beitrag zu Python Try Except.
close
Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Schlagwörter:
Cookie Consent mit Real Cookie Banner