Python

⌘K
  1. Home
  2. Docs
  3. Python
  4. Python Try Except

Python Try Except

Python Try Except: Der Umgang mit Fehlern und Ausnahmen ist ein wichtiger Bestandteil der Programmierung. In Python können Sie das tryexcept-Konstrukt verwenden, um Fehler abzufangen und zu behandeln, ohne dass Ihr Programm abstürzt. Dieses Konstrukt ermöglicht es Ihnen, codebasierte Ausnahmen kontrolliert zu verwalten und Fehlerprotokolle zu führen.

1. Grundlegende Verwendung von try und except

Der grundlegende Aufbau besteht aus einem try-Block, der den Code enthält, der möglicherweise einen Fehler verursacht, und einem oder mehreren except-Blöcken, die angeben, was im Falle eines Fehlers geschehen soll.

Beispiel

try:
    zahl = int(input("Bitte geben Sie eine Zahl ein: "))
    ergebnis = 100 / zahl
    print("Das Ergebnis ist:", ergebnis)
except ValueError:
    print("Das war keine gültige Zahl!")
except ZeroDivisionError:
    print("Sie können nicht durch Null teilen!")

In diesem Beispiel wird eine Zahl vom Benutzer abgefragt. Wenn der Benutzer eine ungültige Eingabe (z. B. Buchstaben) macht, wird eine ValueError-Ausnahme ausgelöst. Wenn der Benutzer die Zahl 0 eingibt, wird eine ZeroDivisionError-Ausnahme ausgelöst.

2. Mehrere except-Blöcke

Sie können mehrere except-Blöcke definieren, um verschiedene Arten von Ausnahmen zu behandeln.

Beispiel

try:
    zahl1 = int(input("Bitte geben Sie die erste Zahl ein: "))
    zahl2 = int(input("Bitte geben Sie die zweite Zahl ein: "))
    ergebnis = zahl1 / zahl2
    print("Das Ergebnis ist:", ergebnis)
except ValueError:
    print("Bitte geben Sie eine gültige Zahl ein!")
except ZeroDivisionError:
    print("Division durch Null ist nicht erlaubt!")

3. Fangen aller Ausnahmen

Um alle möglichen Ausnahmen abzufangen, können Sie except ohne Angabe eines spezifischen Fehlertyps verwenden. Dies ist jedoch nicht immer empfohlen, da es das Debugging erschweren kann.

Beispiel

try:
    result = 10 / 0
except:
    print("Ein Fehler ist aufgetreten.")

4. else und finally Blöcke

Zusätzlich zu try und except können Sie auch die else– und finally-Blöcke verwenden. Der else-Block wird ausgeführt, wenn der try-Block ohne Fehler erfolgreich abgeschlossen wird, während der finally-Block immer ausgeführt wird, unabhängig davon, ob ein Fehler aufgetreten ist oder nicht.

Beispiel

try:
    zahl = int(input("Bitte geben Sie eine Zahl ein: "))
    ergebnis = 100 / zahl
except ValueError:
    print("Das war keine gültige Zahl!")
except ZeroDivisionError:
    print("Sie können nicht durch Null teilen!")
else:
    print("Das Ergebnis ist:", ergebnis)
finally:
    print("Der Programmablauf ist abgeschlossen.")

5. Benutzerdefinierte Ausnahmen

Sie können auch eigene Ausnahmen definieren, indem Sie eine Klasse erstellen, die von Exception erbt. Dies ist nützlich, wenn Sie spezifische Fehler in Ihrer Anwendung behandeln möchten.

Beispiel

class MeinFehler(Exception):
    pass

def pruefe_zahl(zahl):
    if zahl < 0:
        raise MeinFehler("Die Zahl darf nicht negativ sein!")

try:
    nummer = int(input("Bitte geben Sie eine positive Zahl ein: "))
    pruefe_zahl(nummer)
except MeinFehler as e:
    print(e)

Häufig gestellte Fragen

Was ist der Zweck von try und except?

try und except werden verwendet, um Fehler und Ausnahmen im Programm zu behandeln, ohne dass das Programm abstürzt.

Kann ich mehrere Ausnahmen in einem except-Block behandeln?

Ja, Sie können mehrere Ausnahmen im selben except-Block behandeln, indem Sie die Ausnahmetypen in einer Tuple angeben. Beispiel: except (TypeError, ValueError):.

Wie kann ich sicherstellen, dass ein bestimmter Code immer ausgeführt wird?

Sie können den finally-Block verwenden, um sicherzustellen, dass ein bestimmter Code unabhängig vom Ausgang des try-Blocks immer ausgeführt wird.