捕获异常
在开始编写您自己的自定义异常之前,先确认您已经掌握异常处理的基础。
本练习提供了函数 invert_at_index(x, ind),它接收两个参数:列表 x 和索引 ind,并对该索引位置的元素取倒数。例如,invert_at_index([5,6,7], 0) 返回 1/5,即 0.2。
您的目标是实现错误处理,根据发生的错误类型引发自定义异常。
本练习是课程的一部分
Python 面向对象编程入门
练习说明
请在函数内使用 try - except - except 模式(包含两个 except 块)来捕获并处理以下两个异常:
try按原样执行代码,返回1/x[ind]。- 如果发生
ZeroDivisionError,打印"Cannot divide by zero!", - 如果发生
IndexError,打印"Index out of range!"
当代码能无错误运行,且控制台输出为如下内容时,说明您已完成正确实现:
0.16666666666666666
Cannot divide by zero!
None
Index out of range!
None
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Modify the function to catch exceptions
def invert_at_index(x, ind):
____:
return 1/x[ind]
_____:
print("____")
____:
print("____")
a_list = [5,6,0,7]
# Works okay
print(invert_at_index(a_list, 1))
# Potential ZeroDivisionError
print(invert_at_index(a_list, 2))
# Potential IndexError
print(invert_at_index(a_list, 5))