Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Behandlung von Code Nach Exceptions | Fehlerbehandlung
Python Fortgeschrittene Konzepte

book
Behandlung von Code Nach Exceptions

Die try, except, else und finally Klauseln bilden eine Kombination, die Ausnahmen behandelt, Bereinigung durchführt und Code ausführt, basierend darauf, ob Ausnahmen aufgetreten sind oder nicht.

Wenn keine Ausnahmen auftreten

Der else Block wird ausgeführt, wenn KEINE Ausnahmen im try-Block aufgetreten sind. Er ist nützlich für Code, der ausgeführt werden muss, wenn der try-Block keinen Fehler geworfen hat, aber nicht ausgeführt werden sollte, wenn ein Fehler aufgetreten ist.

Beispielverwendung

try:
print("Trying to divide")
result = 10 / 2
except ZeroDivisionError:
print("Divided by zero!")
else:
print("Division successful:", result)
1234567
try: print("Trying to divide") result = 10 / 2 except ZeroDivisionError: print("Divided by zero!") else: print("Division successful:", result)
copy

In diesem Beispiel wird die else-Klausel nur ausgeführt, wenn im try-Block kein ZeroDivisionError abgefangen wird.

Ausführen von Bereinigungsaktionen

Der finally-Block ermöglicht es Ihnen, Code auszuführen, unabhängig davon, ob eine Ausnahme ausgelöst wurde oder nicht. Dies wird typischerweise für Bereinigungsaktionen verwendet.

Beispielverwendung

try:
print("Trying to divide")
result = 10 / 0
except ZeroDivisionError:
print("Divided by zero!")
else:
print("Division successful:", result)
finally:
print("Operation attempted.")
123456789
try: print("Trying to divide") result = 10 / 0 except ZeroDivisionError: print("Divided by zero!") else: print("Division successful:", result) finally: print("Operation attempted.")
copy

In diesem Szenario wird die finally-Klausel unabhängig davon ausgeführt, ob der try-Block erfolgreich ist oder der except-Block eine Ausnahme abfängt, wodurch sichergestellt wird, dass die Nachricht "Operation attempted." in jedem Fall gedruckt wird.

Aufgabe

Swipe to start coding

Implementieren Sie einen vollständigen Fehlerbehandlungsblock mit try, except, else und finally Klauseln. Ihre Aufgabe ist es, einen einfachen Berechnungsprozess zu behandeln.

Lösung

def divide_numbers(x, y):
try:
result = x / y
except TypeError:
print("Please enter only numbers.")
except ZeroDivisionError:
print("Cannot divide by zero.")
else:
print(f"The result is {result}")
finally:
print("Operation attempted.\n")

# Call the function to test the error handling
divide_numbers(6, 2)
divide_numbers(6, 0)
divide_numbers(6, 'o')

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 3
def divide_numbers(x, y):
___:
result = x / y
___ TypeError:
print("Please enter only numbers.")
___ ZeroDivisionError:
print("Cannot divide by zero.")
___
print(f"The result is {result}")
___:
print("Operation attempted.\n")

# Call the function to test the error handling
divide_numbers(6, 2)
divide_numbers(6, 0)
divide_numbers(6, 'o')
toggle bottom row
some-alt