📖 知识点
异常是什么
代码语法完全正确,但是运行过程中遇到无法处理的情况,就会抛出异常 (Exception),程序直接终止。
区分:
语法错误:代码拼写缩进错误,程序根本跑不起来。
异常:代码能启动,运行中途翻车。
三大高频异常
ValueError 值错误传入的数据类型不对,无法完成转换。场景:字符串 "abc" 转 int
int("abc") # ValueError
IndexError 索引错误列表 / 字符串,使用了不存在的下标索引。
lst = [10,20,30]
print(lst[5]) # IndexError,只有0,1,2三个下标KeyError 键错误字典查找一个不存在的 key。
stu = {"name":"小明"}
print(stu["age"]) # KeyError,没有age这个键本节重点:只识别异常,暂不学习捕获。看懂报错信息,定位问题。
⚔️ Kata 实战任务
任务需求:
依次运行下面三段代码,观察报错信息
识别每一段分别触发哪一类异常
在代码旁边写注释标注异常类型
任务代码:
# 代码段1
# int("python")
# 代码段2
# data = [5,6,7]
# print(data[10])
# 代码段3
# info = {"title":"kata"}
# print(info["price"])参考答案
# 代码段1 → ValueError 值错误
int("python")
# 代码段2 → IndexError 索引错误
data = [5,6,7]
print(data[10])
# 代码段3 → KeyError 键错误
info = {"title":"kata"}
print(info["price"])运行后,分别抛出:
ValueError: invalid literal for int() with base 10: 'python'
IndexError: list index out of range
KeyError: 'price'🧠 思考题
语法错误和异常的差别是什么?
访问列表越界是 IndexError,那访问字典不存在键为什么不是 IndexError?
行者孙Python