课程主题
- 讲师:小甲鱼
- 内容:Python 异常基础——认识常见异常类型
- 核心观点:程序出错不可避免,需用异常机制处理;永远不要相信用户输入
异常的本质
- 定义:程序运行时出现的逻辑错误或用户输入不合法导致的报错
- 特点:非致命错误可通过异常机制自我消化,避免程序崩溃
- 示例:打开不存在的文件 → 触发
FileNotFoundError(属于OSError子类)
Python 常见异常类型及说明
- AssertionError
- 触发场景:
assert断言语句后条件为False时抛出 - 作用:作为代码检测点,验证程序运行状态
- 示例:
assert len(my_list) > 0→ 列表为空时触发异常
- 触发场景:
- AttributeError
- 触发场景:尝试访问对象不存在的属性/方法
- 示例:
my_list.fishc()→ 列表无fishc方法,触发异常
- IndexError
- 触发场景:序列(列表/字符串)索引超出范围
- 示例:
my_list = [1,2,3]; my_list[3]→ 最大索引为2,触发异常
- KeyError
- 触发场景:字典中查找不存在的键
- 示例:
my_dict = {1:"one"}; my_dict[4]→ 键4不存在,触发异常 - 解决技巧:用字典
get()方法,避免报错
- NameError
- 触发场景:尝试访问未定义的变量
- 示例:
print(fishc)→ 变量fishc未定义,触发异常
- OSError
- 触发场景:操作系统相关错误,包含多个子类
- 常见子类:
FileNotFoundError(文件不存在) - 示例:
open("test.txt")→ 文件不存在时触发
- OverflowError
- 触发场景:数值运算超出系统最大限制
- 注意:Python 支持大整数,此异常极少出现
- SyntaxError
- 触发场景:代码语法错误(如少括号、关键字写错)
- 特点:编译阶段就报错,程序无法运行
- 示例:
print "hello"→ Python3 中print是函数,需加括号
- TypeError
- 触发场景:不同类型数据执行无效操作
- 示例:
1 + "1"→ 整型与字符串无法相加,触发异常
- ZeroDivisionError
- 触发场景:除法运算中除数为 0
- 示例:
5 / 0→ 直接触发异常
异常相关关键注意点
- 异常无需死记:遇到时查询即可,重点是学会处理
- 语法错误(
SyntaxError)无法通过异常机制处理,必须修正代码 - 用户输入是异常高发区:需假设用户是"熊孩子/黑客",做好输入校验