Behandlung mehrerer Exceptions
Teil des Abschnitts Logik und Ablaufsteuerung der Python-Journey von Coddy. Lektion 65 von 78.
In Python können wir verschiedene Arten von Ausnahmen in separaten except-Blöcken behandeln. Dadurch können wir je nach spezifischem Fehler, der auftritt, unterschiedlich reagieren.
Beginne mit einer einfachen Try-Except-Struktur:
try:
# Code, der Ausnahmen auslösen könnte
pass
except Exception as e:
# Beliebige Ausnahme behandeln
passUm mehrere Ausnahmen zu behandeln, füge 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!")Du kannst auch mehrere Ausnahmetypen in einem einzigen except-Block abfangen:
try:
# Irgendein Code
pass
except (ValueError, TypeError):
print("Invalid input type!")Die Reihenfolge der except-Blöcke ist wichtig – platziere spezifischere exceptions immer vor allgemeineren.
Aufgabe
EinfachErstelle eine Funktion namens process_data, die:
- eine Zeichenfolgeneingabe entgegennimmt, die potenzielle Daten darstellt
- versucht, sie in eine Ganzzahl umzuwandeln, und anschließend 100 durch diese Ganzzahl dividiert
- 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 allgemeinen Handler (gib "An unexpected error occurred!" aus)
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, in dem die Eingabe nicht in eine Ganzzahl umgewandelt werden kann
except ZeroDivisionError:
# Behandle den Fall, in dem 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 Logik und Ablaufsteuerung
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Übe selbstständig: Online-Python-Compiler