Testen der Argumentübergabe mit try-except
In diesem Schritt lernen Sie, wie Sie try-except
-Blöcke verwenden können, um potenzielle Fehler beim Übergeben von Argumenten an eine Funktion zu behandeln. Dies ist besonders wichtig, wenn Sie mit Benutzereingaben oder externen Daten arbeiten, bei denen der Datentyp oder das Format möglicherweise nicht dem entspricht, was die Funktion erwartet.
Lassen Sie uns das Skript my_function.py
ändern, um die Fehlerbehandlung mit try-except
einzubeziehen. Wir werden versuchen, die Funktion add_numbers
mit ungültigen Argumenten aufzurufen und die resultierende TypeError
-Ausnahme abzufangen.
Öffnen Sie die Datei my_function.py
in Ihrem ~/project
-Verzeichnis mit dem VS Code-Editor und ändern Sie sie wie folgt:
## filename: ~/project/my_function.py
import inspect
def add_numbers(x: int, y: int = 10) -> int:
"""This function adds two numbers and returns the result."""
return x + y
try:
result = add_numbers("hello", 5)
print(f"Result: {result}")
except TypeError as e:
print(f"Error: {e}")
try:
result = add_numbers(5, "world")
print(f"Result: {result}")
except TypeError as e:
print(f"Error: {e}")
try:
result = add_numbers(5, 5)
print(f"Result: {result}")
except TypeError as e:
print(f"Error: {e}")
In diesem geänderten Skript:
- Wir umschließen die Aufrufe von
add_numbers
in try-except
-Blöcken.
- Wir versuchen,
add_numbers
mit einer Zeichenkette als erstes Argument und einer Ganzzahl als zweites Argument aufzurufen.
- Wir versuchen,
add_numbers
mit einer Ganzzahl als erstes Argument und einer Zeichenkette als zweites Argument aufzurufen.
- Wir versuchen,
add_numbers
mit zwei Ganzzahlen als Argumente aufzurufen.
- Wenn ein
TypeError
auftritt (was passiert, wenn wir eine Zeichenkette anstelle einer Ganzzahl übergeben), fangen wir die Ausnahme ab und geben eine Fehlermeldung aus.
- Wenn kein
TypeError
auftritt, geben wir das Ergebnis des Funktionsaufrufs aus.
Jetzt führen Sie das Skript mit dem Befehl python
aus:
python ~/project/my_function.py
Sie sollten die folgende Ausgabe sehen:
Error: unsupported operand type(s) for +: 'str' and 'int'
Error: unsupported operand type(s) for +: 'int' and 'str'
Result: 10
Diese Ausgabe zeigt, wie try-except
-Blöcke verwendet werden können, um Fehler, die beim Übergeben von ungültigen Argumenten an eine Funktion auftreten, elegant zu behandeln. Die ersten beiden Aufrufe von add_numbers
führen zu TypeError
-Ausnahmen, die von den except
-Blöcken abgefangen und behandelt werden. Der dritte Aufruf von add_numbers
mit zwei Ganzzahlen wird erfolgreich ausgeführt, und das Ergebnis wird ausgegeben.
Die Verwendung von try-except
-Blöcken ist eine bewährte Methode für das Schreiben von robustem und zuverlässigem Code. Sie ermöglicht es Ihnen, potenzielle Fehler vorherzusehen und sie so zu behandeln, dass Ihr Programm nicht abstürzt.