御险篇-Day43 什么是异常,常见报错类型

0 次阅读 2026-10-19 08:47

📖 知识点

异常是什么

代码语法完全正确,但是运行过程中遇到无法处理的情况,就会抛出异常 (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. 依次运行下面三段代码,观察报错信息

  2. 识别每一段分别触发哪一类异常

  3. 在代码旁边写注释标注异常类型

任务代码:

# 代码段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'

🧠 思考题

  1. 语法错误和异常的差别是什么?

  2. 访问列表越界是 IndexError,那访问字典不存在键为什么不是 IndexError?