Zum Hauptinhalt springen

try und except

Warum brauchen wir das?

zahl = int(input("Zahl: "))

Wenn jemand hallo tippt, entsteht ein ValueError – und das Programm stürzt oft ab.

In echten Programmen willst du:

  • freundlich reagieren,
  • nochmal fragen,
  • oder einen sicheren Weg weitergehen.

Dafür gibt es try und except.

Definition: Ausnahme, try, except

Definition – Ausnahme (Exception):
Eine Ausnahme ist ein Fehler zur Laufzeit, den Python meldet,
wenn etwas Unerwartetes passiert (falscher Typ, Division durch 0, fehlende Datei, …).

Definition – try:
Im try-Block steht Code, der scheitern könnte.

Definition – except:
Im except-Block steht, was passieren soll, wenn ein bestimmter Fehler auftritt.

try:
# riskanter Code
except ValueError:
# Reaktion auf genau diesen Fehlertyp

Alltagsbild

Du versuchst, eine Tür zu öffnen (try).
Wenn sie abgeschlossen ist (Fehler), nimmst du den Schlüssel (except)
statt hinzufallen.

Py: „try = versuch es. except = falls es schiefgeht.“
Buggy: „Ohne except mache ich Drama und beende alles.“

Erstes Beispiel

try:
zahl = int(input("Zahl: "))
print(f"Doppelt: {zahl * 2}")
except ValueError:
print("Das war keine ganze Zahl. Bitte Ziffern wie 7 oder 12.")
EingabeWas passiert
8Doppelt: 16
hifreundliche Meldung, kein Absturz

Was passiert im Computer?

  1. Python startet den try-Block.
  2. Läuft alles gut → except wird übersprungen.
  3. Tritt der genannte Fehler auf → springe in den passenden except.
  4. Danach kann das Programm weiterleben.

Welchen Fehler fangen?

Am Anfang: konkrete Fehlertypen nennen.

except ValueError:
...

Besser als nacktes except:, weil du sonst fast alles schluckst und Bugs versteckst.

try schützt nicht vor SyntaxError

# Das hier knallt schon beim Einlesen des Codes – try hilft nicht:
if True
print("x")

try/except sind für Laufzeitfehler, nicht für kaputte Schreibweise vor dem Start.

Neue Wörter

Ausnahme / Exceptionexception

Laufzeitfehler, den man abfangen kann.

trytry

Block mit Code, der scheitern koennte.

exceptexcept

Block fuer die Reaktion auf einen Fehler.

Probiere es selbst

Experiment 1

int-input mit try/except.

Experiment 2

Absichtlich abc tippen.

Experiment 3

Nach except noch print("weiter gehts").

Experiment 4

Gültige Zahl – except darf nicht laufen.

Fehlerdetektiv

try:
print(int("3"))
except:
print("irgendwas")
Hinweis

Besser konkret:

except ValueError:
print("Ungueltige Zahl")

Übungen

Level 1

try/except um int("12") und erkläre, warum kein except läuft.

Level 2

Alter einlesen abgesichert.

Lösung
try:
alter = int(input("Alter: "))
print(alter)
except ValueError:
print("Bitte eine ganze Zahl.")

Level 3

Zwei Zahlen addieren, beide Eingaben absichern (zwei try oder eine Hilfsfunktion später).

Mini-Challenge

Erkläre: Was ist der Unterschied zwischen SyntaxError und ValueError?
Wann hilft try?

Zusammenfassung

  • Ausnahmen sind Laufzeitfehler.
  • try probiert, except reagiert.
  • Konkrete Fehlertypen nennen.
  • Programm kann danach weiterlaufen.
  • Syntaxfehler vor dem Start fängt try nicht.

Mini-Quiz

Mini-QuizWofuer steht try?
  1. Was ist eine Exception?
  2. Wann läuft except?
  3. Warum nicht nacktes except am Anfang?
Lösungen
  1. Laufzeitfehler.
  2. Wenn im try der passende Fehler auftritt.
  3. Es versteckt zu viele Fehlerarten.

try sitzt! Als Nächstes: Eingaben wiederholen, bis sie stimmen.