Testen mit try-except für Aufrufe
In diesem Schritt werden Sie lernen, wie Sie try-except
-Blöcke verwenden, um potenzielle Fehler beim Aufrufen von Objekten in Python zu behandeln. Dies ist besonders nützlich, wenn Sie nicht sicher sind, ob ein Objekt aufrufbar ist oder ob sein Aufruf eine Ausnahme auslösen könnte.
Beginnen wir mit einem Beispiel, in dem wir versuchen, ein Objekt aufzurufen, das möglicherweise nicht aufrufbar ist:
def my_function():
return "Hello from my_function!"
x = 10
objects_to_test = [my_function, x]
for obj in objects_to_test:
try:
result = obj()
print(f"Object is callable, result: {result}")
except TypeError as e:
print(f"Object is not callable: {e}")
Fügen Sie diesen Code in Ihre callable_example.py
-Datei ein und ersetzen Sie den vorherigen Inhalt.
Führen Sie nun das Skript mit dem folgenden Befehl im Terminal aus:
python callable_example.py
Sie sollten die folgende Ausgabe sehen:
Object is callable, result: Hello from my_function!
Object is not callable: 'int' object is not callable
In diesem Beispiel iterieren wir durch eine Liste von Objekten und versuchen, jedes Objekt aufzurufen. Der try
-Block versucht, das Objekt aufzurufen. Wenn das Objekt aufrufbar ist und der Aufruf erfolgreich ist, wird das Ergebnis ausgegeben. Wenn das Objekt nicht aufrufbar ist, wird ein TypeError
ausgelöst, und der except
-Block fängt die Ausnahme ab und gibt eine entsprechende Nachricht aus.
Betrachten wir nun einen Fall, in dem das Objekt aufrufbar ist, aber sein Aufruf eine andere Art von Ausnahme auslösen könnte:
def my_function(a, b):
return a / b
try:
result = my_function(10, 0)
print(f"Result: {result}")
except ZeroDivisionError as e:
print(f"Error: {e}")
except TypeError as e:
print(f"Error: {e}")
Fügen Sie diesen Code in Ihre callable_example.py
-Datei ein und ersetzen Sie den vorherigen Inhalt.
Führen Sie das Skript erneut aus:
python callable_example.py
Sie sollten die folgende Ausgabe sehen:
Error: division by zero
In diesem Fall ist my_function
aufrufbar, aber der Aufruf mit b = 0
löst einen ZeroDivisionError
aus. Der try-except
-Block fängt diese spezifische Ausnahme ab und behandelt sie gracefully.
Die Verwendung von try-except
-Blöcken ermöglicht es Ihnen, robusteres und zuverlässigeres Code zu schreiben, indem Sie potenzielle Fehler, die beim Aufrufen von Objekten auftreten können, antizipieren und behandeln.