13.1 异常的概念
异常是程序运行时发生的错误,会中断程序正常执行。
常见异常类型
1 | # ZeroDivisionError - 除零错误 |
13.2 try-except 语句
基本语法
1 | try: |
多个 except
1 | try: |
13.3 try-except-else-finally
1 | try: |
实际示例
1 | def read_file(filename): |
13.4 捕获多个异常
1 | # 方式 1:多个 except |
13.5 抛出异常
raise 语句
1 | def set_age(age): |
重新抛出异常
1 | try: |
13.6 自定义异常
1 | class MyError(Exception): |
13.7 异常处理最佳实践
1. 捕获具体异常
1 | # 不推荐 |
2. 缩小 try 范围
1 | # 不推荐 |
3. 使用上下文管理器
1 | # 不推荐 |
13.8 断言
断言用于调试,检查条件是否为真。
1 | def divide(a, b): |
13.9 异常链
1 | def process_data(data): |
13.10 本章小结
- 使用
try-except捕获和处理异常 else在无异常时执行,finally总是执行- 捕获具体异常,避免裸
except - 使用
raise抛出异常 - 自定义异常继承
Exception类 - 断言用于调试检查
练习题
- 编写函数,安全地将字符串转换为整数,失败返回默认值
- 创建自定义异常
PasswordError,用于密码验证 - 编写程序读取文件,处理可能的文件不存在和权限错误
- 以下代码输出什么?
1
2
3
4
5
6
7
8try:
print(10 / 2)
except ZeroDivisionError:
print("错误")
else:
print("成功")
finally:
print("完成")