使用完整的异常处理语句try…except…else…finally,处理IndexError、AttributeError、KeyError异常。
时间: 2024-01-19 15:04:23 浏览: 58
C#异常处理中try和catch语句及finally语句的用法示例
5星 · 资源好评率100%
好的,下面是完整的异常处理语句try…except…else…finally,处理IndexError、AttributeError、KeyError异常的示例代码:
```
try:
# 可能会抛出异常的代码块
my_dict = {"name": "Tom", "age": 18}
print(my_dict["gender"]) # KeyError: 'gender'
print(my_dict.age) # AttributeError: 'dict' object has no attribute 'age'
my_list = [1, 2, 3]
print(my_list[3]) # IndexError: list index out of range
except (IndexError, AttributeError, KeyError) as e:
# 捕获多个异常并进行处理
print("发生了异常:", e)
else:
# 如果没有发生异常,执行else语句块
print("没有发生异常!")
finally:
# 不管是否发生异常,都会执行finally语句块
print("程序执行完毕!")
```
在上面的代码中,我们尝试访问一个不存在的字典键、一个字典没有的属性以及一个超出列表索引范围的元素,这三种情况都可能会抛出异常。
在try语句块中,我们尝试执行这些可能会抛出异常的代码。如果其中的任何一行代码抛出了异常,程序将跳转到except语句块中,并执行其中的代码。在本例中,我们使用了一个元组来捕获多个异常,这些异常包括IndexError、AttributeError和KeyError。
在except语句块中,我们打印出了异常信息,这样我们就可以看到程序在哪里出现了问题。然后,程序将继续执行else语句块,因为在本例中没有发生异常。在else语句块中,我们打印出了一条消息,表示程序没有发生异常。
最后,无论程序是否发生异常,都会执行finally语句块。在本例中,我们打印出了一条消息,表示程序已经执行完毕。
阅读全文