`try` und `except` in Python verstehen
Wenhao Wang
Dev Intern · Leapcell

Key Takeaways
try
undexcept
ermöglichen es Python-Programmen, Fehler elegant zu behandeln.- Das Abfangen spezifischer Ausnahmen verbessert die Übersichtlichkeit und Debugging-Fähigkeit.
else
undfinally
bieten zusätzliche Kontrolle über den Fehlerbehandlungsablauf.
Die Fehlerbehandlung ist ein kritischer Aspekt beim Schreiben von robusten und fehlertoleranten Python-Programmen. In Python bietet der try
und except
Block eine saubere und lesbare Möglichkeit, Ausnahmen zu verwalten und zu verhindern, dass Ihr Code unerwartet abstürzt.
Warum try
und except
verwenden?
Wenn Sie Code schreiben, der mit der Außenwelt interagiert – wie z. B. das Lesen von Dateien, der Zugriff auf eine Datenbank oder das Senden von Netzwerkanfragen – besteht immer die Möglichkeit, dass etwas schiefgeht. Anstatt Ihr Programm abstürzen zu lassen, wenn ein Fehler auftritt, können Sie try
und except
verwenden, um die Situation elegant zu behandeln.
Grundlegende Syntax
Die grundlegende Struktur eines try
-except
-Blocks in Python ist wie folgt:
try: # Code, der eine Ausnahme auslösen könnte result = 10 / 0 except ZeroDivisionError: # Code, der ausgeführt wird, wenn die Ausnahme auftritt print("Sie können nicht durch Null teilen!")
In diesem Beispiel versucht Python, den Code innerhalb des try
-Blocks auszuführen. Wenn ein ZeroDivisionError
auftritt, springt es zum except
-Block und gibt eine Fehlermeldung aus.
Mehrere Ausnahmen abfangen
Sie können mehrere Ausnahmetypen behandeln, indem Sie mehrere except
-Klauseln angeben:
try: user_input = int(input("Geben Sie eine Nummer ein: ")) result = 100 / user_input except ValueError: print("Ungültige Eingabe! Bitte geben Sie eine Nummer ein.") except ZeroDivisionError: print("Sie können nicht durch Null teilen.")
Jede except
-Klausel behandelt einen bestimmten Fehlertyp. Dadurch kann Ihr Programm angemessen auf verschiedene Arten von Problemen reagieren.
Verwenden von else
und finally
Python unterstützt auch optionale else
- und finally
-Klauseln, um noch mehr Kontrolle zu bieten:
else
: Wird ausgeführt, wenn keine Ausnahmen auftreten.finally
: Wird auf jeden Fall ausgeführt, auch wenn eine Ausnahme ausgelöst wurde.
try: number = int(input("Geben Sie eine Nummer ein: ")) print("Sie haben eingegeben:", number) except ValueError: print("Das ist keine gültige Nummer.") else: print("Großartig! Es sind keine Fehler aufgetreten.") finally: print("Diese Nachricht wird immer angezeigt.")
Alle Ausnahmen abfangen (nicht immer empfohlen)
Sie können alle Ausnahmen mit einem bloßen except
abfangen, dies wird jedoch nicht empfohlen, es sei denn, es ist unbedingt erforderlich:
try: risky_operation() except: print("Ein unerwarteter Fehler ist aufgetreten.")
Dies fängt alle Ausnahmen ab, einschließlich Systemausstiegs-Ausnahmen wie KeyboardInterrupt
, was möglicherweise nicht das ist, was Sie wollen.
Bewährte Verfahren
- Fangen Sie bestimmte Ausnahmen ab: Dies erleichtert das Debuggen und Verstehen Ihres Codes.
- Vermeiden Sie bloße
except
: Es sei denn, Sie protokollieren oder behandeln wirklich unbekannte Fehler. - Verwenden Sie
finally
zum Aufräumen: Ideal zum Schließen von Dateien oder Netzwerkverbindungen. - Verbergen Sie keine Fehler: Behandeln Sie Fehler sinnvoll, anstatt sie stillschweigend zu überspringen.
Schlussfolgerung
Das try
und except
Konstrukt ist ein leistungsstarkes Werkzeug in Python zum Erstellen robuster Anwendungen. Indem Sie es durchdacht einsetzen, können Sie Programme schreiben, die sowohl benutzerfreundlich als auch wartungsfreundlich sind. Das Beherrschen der Ausnahmebehandlung ist ein wichtiger Schritt, um ein kompetenter Python-Entwickler zu werden.
FAQs
Das Programm stürzt ab, es sei denn, der Fehler wird auch von einem anderen try
-except
-Block abgefangen.
Es wird nicht empfohlen, es sei denn, Sie behandeln wirklich unerwartete Fehler; es kann Fehler verbergen.
Verwenden Sie finally
für Aufräumarbeiten wie das Schließen von Dateien oder das Freigeben von Ressourcen.
Wir sind Leapcell, Ihre erste Wahl für das Hosten von Python-Projekten.
Leapcell ist die Serverless-Plattform der nächsten Generation für Webhosting, asynchrone Aufgaben und Redis:
Multi-Sprachen Unterstützung
- Entwickeln Sie mit Node.js, Python, Go oder Rust.
Stellen Sie unbegrenzt viele Projekte kostenlos bereit
- Zahlen Sie nur für die Nutzung – keine Anfragen, keine Gebühren.
Unschlagbare Kosteneffizienz
- Pay-as-you-go ohne Leerlaufgebühren.
- Beispiel: 25 US-Dollar unterstützen 6,94 Millionen Anfragen bei einer durchschnittlichen Antwortzeit von 60 ms.
Optimierte Entwicklererfahrung
- Intuitive Benutzeroberfläche für mühelose Einrichtung.
- Vollständig automatisierte CI/CD-Pipelines und GitOps-Integration.
- Echtzeitmetriken und -protokollierung für umsetzbare Einblicke.
Mühelose Skalierbarkeit und hohe Leistung
- Automatische Skalierung zur einfachen Bewältigung hoher Parallelität.
- Kein operativer Overhead – konzentrieren Sie sich einfach auf das Bauen.
Erfahren Sie mehr in der Dokumentation!
Folgen Sie uns auf X: @LeapcellHQ