常见内置异常类型详解
SyntaxError / NameError / TypeError / ValueError / IndexError / KeyError / FileNotFoundError
一、什么是异常
程序运行时代码语法没错,但执行出错,程序终止、报错崩溃,就是异常。
作用:通过 try...except 捕获异常,避免程序直接崩溃。
二、7 大高频异常(考试/面试/开发必背)
1. SyntaxError 语法错误
含义:代码书写格式错误,程序根本无法运行
触发场景:
# 错误示例
if1 > 0# 漏写冒号
print("ok")
特点:
2. NameError 名称错误
含义:使用了未定义、不存在的变量/函数名
# 错误示例
print(num) # 变量 num 从未定义
hello() # 没有定义 hello 函数
口诀:名字没定义,就是 NameError
3. TypeError 类型错误
含义:数据类型不匹配,操作类型错误
常见触发:
# 示例1:类型混搭运算
10 + "20"
# 示例2:函数参数个数不对
defadd(a):
pass
add(1,2)
4. ValueError 值错误
含义:数据类型正确,但数值内容非法、不符合规则
和 TypeError 区别:
# 错误示例
int("abc") # 字符串不是合法数字,转整数失败
float("hello")
5. IndexError 索引错误
含义:序列(列表、元组、字符串)下标越界
lst = [10, 20, 30]
print(lst[5]) # 只有0/1/2,索引5不存在
口诀:下标超出范围 → IndexError
6. KeyError 键错误
含义:字典中不存在指定 key
d = {"name":"小明", "age":18}
print(d["city"]) # 没有 city 这个键
解决:
- • 使用
d.get("city") 安全取值,不报错
7. FileNotFoundError 文件不存在错误
含义:打开/读取文件时,文件路径错误、文件不存在
# 错误示例
f = open("test999.txt", "r", encoding="utf-8")
常见原因:
三、异常快速区分对照表(背诵版)
四、基础异常捕获语法
1. 捕获指定异常
try:
lst = [1,2,3]
print(lst[10])
except IndexError:
print("索引越界,出现 IndexError")
2. 多异常分开捕获
try:
d = {"name":"小明"}
print(d["age"])
except KeyError:
print("字典key不存在")
except FileNotFoundError:
print("文件不存在")
3. 万能捕获(不推荐滥用)
try:
10 + "abc"
except Exception:
print("代码出现异常")
五、易混题重点辨析
- 2.
int("abc") → ValueError - 6.
print(a) 未定义 → NameError - 7.
open("不存在.txt") → FileNotFoundError - 8.
if True 少冒号 → SyntaxError
六、极简总结
- • FileNotFoundError:文件找不到