Python Try Except: Der Umgang mit Fehlern und Ausnahmen ist ein wichtiger Bestandteil der Programmierung. In Python können Sie das try
–except
-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.