课程主题
- 讲师:小甲鱼
- 内容:Python 异常检测与处理——
try-except/try-finally/raise - 核心目标:捕获并处理运行时异常,避免程序崩溃,提升用户体验
一、什么是异常?为什么要处理?
异常就是程序运行时出错(比如除零、索引越界、文件不存在),不处理会直接崩溃闪退。
异常处理的作用:
- 不让程序直接崩溃
- 给用户友好提示
- 保证关键代码一定执行
- 主动抛出符合业务的错误
二、核心知识点 1:try-except(捕获并处理异常)
作用
监控代码 → 出错了就捕获 → 不崩溃,执行备用方案
基础语法
try:
# 可能出错的代码
except 异常类型:
# 出错后要执行的代码
最简单示例
# 除零错误
try:
print(10 / 0) # 这里会报错
except ZeroDivisionError:
print("错误:不能除以0!")
捕获多种异常
try:
num = int(input("请输入数字:")) # 输入字母会报错
print(10 / num)
except ValueError:
print("错误:你输入的不是数字!")
except ZeroDivisionError:
print("错误:不能除以0!")
捕获所有异常(不推荐滥用,但新手常用)
try:
# 任何代码
except Exception as e:
print(f"程序出错了:{e}")
三、核心知识点 2:try-except-else(没出错才执行)
作用
代码没异常 → 执行 else
try:
num = int(input("输入数字:"))
except ValueError:
print("输入错误")
else:
print(f"你输入的是:{num}") # 只有没错才会运行
四、核心知识点 3:try-finally(无论如何都执行)
作用
不管有没有异常,finally 里的代码 100% 执行
常用于:关闭文件、关闭数据库、释放资源。
语法
try:
# 可能出错的代码
finally:
# 无论如何都会执行
示例
try:
f = open("test.txt", "r")
data = f.read()
finally:
f.close() # 就算读取出错,文件也一定会关闭
完整版:try + except + finally
try:
f = open("test.txt", "r")
except FileNotFoundError:
print("文件不存在")
finally:
print("资源清理完成")
五、核心知识点 4:raise(主动抛出异常)
作用
人为制造异常,用于:
- 不符合业务规则时报错
- 自定义错误提示
- 让上层代码处理错误
示例
age = int(input("输入年龄:"))
if age < 0 or age > 150:
# 主动抛出异常
raise ValueError("年龄必须在 0~150 之间")
抛出后程序会停止,并显示你定义的错误信息。
六、最完整的万能模板(工作最常用)
try:
# 可能出错的代码
pass
except 特定异常1:
# 处理异常1
pass
except 特定异常2:
# 处理异常2
pass
except Exception as e:
# 捕获其他所有未知错误
print(f"未知错误:{e}")
else:
# 没有异常才执行
pass
finally:
# 无论如何都执行(清理资源)
pass
七、3 个核心知识点一句话总结
- try-except:捕获异常,不让程序崩溃
- try-finally:无论是否出错,都必须执行(关文件、关连接)
- raise:主动抛异常,用于业务规则校验
总结
try:监控危险代码except:捕获并处理错误else:无错误时执行finally:100% 执行(清理资源)raise:主动抛出错误
这套就是 Python 异常处理全部核心,也是小甲鱼课程的重点,学会就能写出稳定、不崩溃的 Python 程序。