使用完整的异常处理语句try…except…else…finally,处理IndexError、AttributeError、KeyError异常。
时间: 2024-01-19 07:04:24 浏览: 73
好的,下面是使用完整的异常处理语句try…except…else…finally,处理IndexError、AttributeError、KeyError异常的示例代码:
```python
try:
# 可能会引发异常的代码块
my_dict = {"name": "Tom", "age": 18}
print(my_dict["gender"]) # 引发KeyError异常
my_list = [1, 2, 3]
print(my_list[3]) # 引发IndexError异常
my_str = "hello"
my_str.append(" world") # 引发AttributeError异常
except KeyError:
# 处理KeyError异常
print("发生了KeyError异常")
except IndexError:
# 处理IndexError异常
print("发生了IndexError异常")
except AttributeError:
# 处理AttributeError异常
print("发生了AttributeError异常")
else:
# 如果try块没有引发异常,将会执行else块
print("没有出现异常")
finally:
# 不管有没有引发异常,都会执行finally块
print("异常处理完毕")
```
在上面的代码中,我们首先尝试访问一个字典中不存在的键,这会引发KeyError异常;然后尝试访问一个列表中不存在的索引,这会引发IndexError异常;最后尝试在字符串上调用一个不存在的方法,这会引发AttributeError异常。
在try块中,我们通过访问字典、列表和字符串来刻意引发这些异常。在except块中,我们分别处理了三种不同的异常。在else块中,我们输出了一条信息,表示try块中没有出现异常。在finally块中,我们输出了一条信息,表示异常处理完毕,无论try块中是否出现异常,这条信息都会被输出。
阅读全文