当前位置:首页>python>Python 异常处理超详细教程

Python 异常处理超详细教程

  • 2026-10-11 08:22:35
Python 异常处理超详细教程

常见内置异常类型详解

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. 1. 不同类型不能运算
  2. 2. 函数传参个数/类型不对
  3. 3. 不可迭代对象强行遍历
# 示例1:类型混搭运算
10 + "20"

# 示例2:函数参数个数不对
defadd(a):
pass
add(1,2)

4. ValueError 值错误

含义:数据类型正确,但数值内容非法、不符合规则
和 TypeError 区别:

  • • TypeError:类型不对
  • • ValueError:类型对,内容错
# 错误示例
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")

常见原因:

  • • 文件名写错
  • • 路径错误
  • • 文件被删除/移动

三、异常快速区分对照表(背诵版)

异常类型
中文含义
核心原因
SyntaxError
语法错误
代码写错格式,无法运行
NameError
变量名错误
变量/函数未定义
TypeError
类型错误
数据类型不匹配
ValueError
值错误
类型正确,内容非法
IndexError
索引越界
列表/字符串下标不存在
KeyError
字典键错误
字典没有该 key
FileNotFoundError
文件不存在
路径错误、文件丢失

四、基础异常捕获语法

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("代码出现异常")

五、易混题重点辨析

  1. 1. int("123") 正常
  2. 2. int("abc") → ValueError
  3. 3. 1 + "2" → TypeError
  4. 4. lst[99] → IndexError
  5. 5. dic["xxx"] → KeyError
  6. 6. print(a) 未定义 → NameError
  7. 7. open("不存在.txt") → FileNotFoundError
  8. 8. if True 少冒号 → SyntaxError

六、极简总结

  • • SyntaxError:代码写错,运行不了
  • • NameError:变量没定义
  • • TypeError:类型不匹配
  • • ValueError:内容不合法
  • • IndexError:下标越界
  • • KeyError:字典无此键
  • • FileNotFoundError:文件找不到

最新文章

随机文章