Behandlung mehrerer Exceptions
Teil des Abschnitts Logic & Flow der Python-Journey von Coddy — Lektion 65 von 78.
In Python können wir verschiedene Arten von Ausnahmen in separaten except-Blöcken behandeln. Dies ermöglicht es uns, je nach dem spezifischen Fehler, der auftritt, unterschiedlich zu reagieren.
Beginnen Sie mit einer einfachen try-except-Struktur:
try:
# Code, der Ausnahmen auslösen könnte
pass
except Exception as e:
# Behandle jede Ausnahme
passUm mehrere Ausnahmen zu behandeln, fügen Sie spezifische except-Blöcke hinzu:
try:
number = int(input("Enter a number: "))
result = 10 / number
print(result)
except ValueError:
print("That's not a valid number!")
except ZeroDivisionError:
print("Cannot divide by zero!")Sie können auch mehrere Ausnahmetypen in einem einzigen except-Block abfangen:
try:
# Etwas Code
pass
except (ValueError, TypeError):
print("Invalid input type!")Die Reihenfolge der except-Blöcke ist wichtig – platzieren Sie spezifischere Ausnahmen immer vor allgemeineren.
Aufgabe
EinfachErstelle eine Funktion namens process_data, die:
- Eine String-Eingabe entgegennimmt, die potenzielle Daten darstellt
- Versucht, diese in eine Ganzzahl umzuwandeln, und dann 100 geteilt durch diese Ganzzahl berechnet
- Das Ergebnis zurückgibt
- Mindestens 3 mögliche Ausnahmen behandelt:
ValueError, wenn die Eingabe nicht in eine Ganzzahl umgewandelt werden kann (gib "Input must be a number!" aus)ZeroDivisionError, wenn die Eingabe 0 ist (gib "Cannot divide by zero!" aus)- Jede andere Ausnahme mit einem generischen Handler (gib "An unexpected error occurred!" aus)
Spickzettel
Behandeln Sie verschiedene Arten von Ausnahmen mit mehreren except-Blöcken:
try:
number = int(input("Enter a number: "))
result = 10 / number
print(result)
except ValueError:
print("That's not a valid number!")
except ZeroDivisionError:
print("Cannot divide by zero!")Fangen Sie mehrere Ausnahmetypen in einem einzigen except-Block ab:
try:
# Einiger Code
pass
except (ValueError, TypeError):
print("Invalid input type!")Platzieren Sie spezifischere Ausnahmen immer vor allgemeineren in der Reihenfolge der except-Blöcke.
Probier es selbst
def process_data(input_string):
try:
# Versuche, den Eingabestring in eine Ganzzahl umzuwandeln
# Berechne 100 geteilt durch den Eingabewert
# Gib das Ergebnis zurück
except ValueError:
# Behandle den Fall, dass die Eingabe nicht in eine Ganzzahl umgewandelt werden kann
except ZeroDivisionError:
# Behandle den Fall, dass die Eingabe Null ist
except:
# Behandle alle anderen unerwarteten Ausnahmen
return NoneDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logic & Flow
1Variablen-Erkundung
KonstantenMehrfache VariablenzuweisungenVariablen tauschenPlatzhalter-VariablenZahlen rundenListen-Casting4Kontaktbuch-Anwendung
Menü anzeigenKontakt hinzufügen7Sets Teil 2
Mathematische Operationen Teil 1Mathematische Operationen Teil 2Rückblick – SchatzsucheTeilmengen und ObermengenIterieren über SetsRückblick – Turnier-Tracker10Grundlagen der List Comprehensions
Die SyntaxEinfache Listen erstellenBedingungen hinzufügenDatenaggregation nutzenRückblick - House Of ListsRückblick - Elements Of Freedom13Bestandsverwaltungssystem
ProjektübersichtArtikel hinzufügen2Dictionaries Teil 1
Was ist ein Dictionary?Ein Dictionary erstellenZugriff auf WerteDictionaries ändernRückblick – Rezept-Manager5Fortgeschrittene Entscheidungsfindung
Ternärer OperatorZugehörigkeitsprüfungenIdentitätsprüfungenEinrückungsfehlerZusammenfassung - Urlaubsfilter8Studenten-Datenverwaltung
ProjektübersichtStudent hinzufügen11Fortgeschrittene Funktionen
Mehrere Werte zurückgebenLambda-Funktionen Teil 1Lambda-Funktionen Teil 2Recap Challenge – Lambda SortRekursive Funktionen Teil 1Rekursive Funktionen Teil 2Recap – Verschachtelte Listen summieren14Funktionen höherer Ordnung
Die Map-FunktionDie Filter-FunktionWiederholung – E-Mail-ValidatorWiederholung – Zahlenprozessor3Dictionaries Teil 2
Dictionary-MethodenVerschachtelte DictionariesKeys überprüfenDictionaries durchlaufenZusammenfassung – Häufigkeitszähler9Fortgeschrittene Datenaggregation
Verwendung von SumMinimum und Maximum findenDaten effizient sortierenRückblick - Dictionary Sorter12Grundlagen der Fehlerbehandlung
Was ist Fehlerbehandlung?Der Try- und Except-BlockBehandlung mehrerer ExceptionsRückblick – Warenkorb-Fehler