使用 try-except
进行调用测试
在这一步中,你将学习如何使用 try-except
代码块来处理在 Python 中调用对象时可能出现的错误。当你不确定一个对象是否可调用,或者调用它可能会引发异常时,这种方法特别有用。
让我们从一个尝试调用可能不可调用对象的示例开始:
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}")
将此代码添加到你的 callable_example.py
文件中,替换之前的内容。
现在,在终端中使用以下命令执行脚本:
python callable_example.py
你应该会看到以下输出:
Object is callable, result: Hello from my_function!
Object is not callable: 'int' object is not callable
在这个示例中,我们遍历一个对象列表,尝试调用每个对象。try
代码块尝试调用对象。如果对象是可调用的,并且调用成功,则打印结果。如果对象不可调用,则会引发 TypeError
,except
代码块会捕获该异常并打印相应的消息。
现在,让我们考虑一种情况,即对象是可调用的,但调用它可能会引发其他类型的异常:
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}")
将此代码添加到你的 callable_example.py
文件中,替换之前的内容。
再次执行脚本:
python callable_example.py
你应该会看到以下输出:
Error: division by zero
在这种情况下,my_function
是可调用的,但使用 b = 0
调用它会引发 ZeroDivisionError
。try-except
代码块捕获了这个特定的异常并进行了妥善处理。
使用 try-except
代码块可以让你通过预测和处理调用对象时可能出现的潜在错误,编写出更健壮、更可靠的代码。