小甲鱼Python学习笔记

课程主题

  • 讲师:小甲鱼
  • 内容:Python 异常检测与处理——try-except/try-finally/raise
  • 核心目标:捕获并处理运行时异常,避免程序崩溃,提升用户体验

一、什么是异常?为什么要处理?

异常就是程序运行时出错(比如除零、索引越界、文件不存在),不处理会直接崩溃闪退
异常处理的作用:

  1. 不让程序直接崩溃
  2. 给用户友好提示
  3. 保证关键代码一定执行
  4. 主动抛出符合业务的错误

二、核心知识点 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 个核心知识点一句话总结

  1. try-except:捕获异常,不让程序崩溃
  2. try-finally:无论是否出错,都必须执行(关文件、关连接)
  3. raise:主动抛异常,用于业务规则校验

总结

  • try:监控危险代码
  • except:捕获并处理错误
  • else:无错误时执行
  • finally:100% 执行(清理资源)
  • raise:主动抛出错误

这套就是 Python 异常处理全部核心,也是小甲鱼课程的重点,学会就能写出稳定、不崩溃的 Python 程序。