0Pricing
Python Academy · Lektion

try / except / else / finally

Strukturieren Sie Blöcke zur Ausnahmebehandlung für jedes Szenario.

try / except / else / finally ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Einführung

Pythons try/except/else/finally bietet Ihnen vollständige Kontrolle über die Fehlerbehandlung und Bereinigung.

Grundlegendes try/except

try: risky_code() except ExceptionType: handle() – Python führt den except-Block nur aus, wenn eine Exception dieses Typs ausgelöst wird.
try:
    x = int('abc')
except ValueError:
    print('not a number')

Das Exception-Objekt abfangen

except ValueError as e: bindet die Exception an e. Verwenden Sie str(e) oder e.args, um die Meldung abzurufen.
try:
    int('oops')
except ValueError as e:
    print(f'Error: {e}')

Mehrere Exceptions abfangen

except (TypeError, ValueError) as e: fängt beide Typen ab.
for val in ['abc', None, 42]:
    try:
        print(int(val))
    except (TypeError, ValueError) as e:
        print(f'skipping {val!r}: {e}')

Leeres except (vermeiden)

except: (ohne Typ) fängt ALLES ab, einschließlich KeyboardInterrupt und SystemExit. Das ist fast immer ein Fehler – geben Sie immer konkrete Typen an.
try:
    risky = 1/0
except ZeroDivisionError:
    print('division error')  # specific

Mehrere except-Klauseln

Sie können mehrere except-Blöcke verwenden, die jeweils einen anderen Typ behandeln. Python prüft sie in der angegebenen Reihenfolge.
def process(val):
    try:
        return 10 / int(val)
    except ValueError:
        print('not a number')
    except ZeroDivisionError:
        print('division by zero')
process('abc')
process('0')

Die else-Klausel

try/except/else: else wird nur ausgeführt, wenn KEINE Exception ausgelöst wurde. Verwenden Sie sie für Code, der bei Erfolg ausgeführt werden soll.
try:
    x = int('42')
except ValueError:
    print('bad input')
else:
    print('parsed:', x)

Die finally-Klausel

finally: wird IMMER ausgeführt – nach erfolgreichem try, nach except und sogar nach return oder break. Das ist ideal für Bereinigungsarbeiten.
def read_file(path):
    f = None
    try:
        f = open(path)
        return f.read()
    except FileNotFoundError:
        return None
    finally:
        if f: f.close()
print(read_file('/nonexistent'))

finally mit return

Wenn sowohl return als auch finally vorhanden sind, wird finally zuerst ausgeführt, aber der Rückgabewert von finally setzt sich durch. Seien Sie vorsichtig.
def demo():
    try:
        return 'try'
    finally:
        return 'finally'  # overrides!
print(demo())

Verschachtelte try-Blöcke

try-Blöcke können verschachtelt werden. Eine innere Exception wird nach außen weitergegeben, wenn sie nicht vom inneren except abgefangen wird.
try:
    try:
        x = 1/0
    except ValueError:
        print('inner')
except ZeroDivisionError:
    print('outer caught it')

Exceptions protokollieren

import logging; logging.exception('msg') protokolliert den vollständigen Traceback. Das ist ideal für Produktivcode.
import logging
try:
    1/0
except ZeroDivisionError:
    logging.exception('Caught an error')

Schnellüberprüfung

Welche Klausel wird unabhängig davon ausgeführt, ob eine Exception aufgetreten ist?

Zusammenfassung

try/except fängt Fehler ab. else wird bei Erfolg ausgeführt. finally wird immer ausgeführt (Bereinigung). Fangen Sie konkrete Typen ab und vermeiden Sie leeres except. Verwenden Sie as e, um auf die Exception zuzugreifen.

Weiter

Sehr gute Arbeit! Fahren Sie mit der nächsten Lektion fort, um weiter voranzukommen.

Häufig gestellte Fragen

Ist die Lektion „try / except / else / finally“ kostenlos?

Ja — der vollständige Text von „try / except / else / finally“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „try / except / else / finally“?

Strukturieren Sie Blöcke zur Ausnahmebehandlung für jedes Szenario. Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Python Academy zu starten?

Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „try / except / else / finally“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?

Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Ausnahmen verstehen
  2. try / except / else / finally
  3. Ausnahmen auslösen und erneut auslösen
  4. Benutzerdefinierte Ausnahmeklassen
← Zurück zu Python Academy