Menu
Coddy logo textTech

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
    pass

Um 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.

challenge icon

Aufgabe

Einfach

Erstelle eine Funktion namens process_data, die:

  1. Eine String-Eingabe entgegennimmt, die potenzielle Daten darstellt
  2. Versucht, diese in eine Ganzzahl umzuwandeln, und dann 100 geteilt durch diese Ganzzahl berechnet
  3. Das Ergebnis zurückgibt
  4. 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 None
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logic & Flow