python基础学习笔记第八章——异常

一、异常概念

  • 异常(BUG) :程序运行时出现的错误,会导致程序直接中断停止。

  • 例子:除0、用错数据类型、文件不存在、访问不存在的变量等。

二、异常捕获的意义

代码不可能100%无错,给(try)可能出错的代码 做(except)备用方案,让程序出错后不崩溃,继续运行。

三、完整语法

python 复制代码
try:
    # 【核心】可能抛出异常的代码
    可能报错的代码

except 异常类型1 as 变量:
    # 捕获到指定异常,执行处理
    异常1的处理方案

except 异常类型2 as 变量:
    # 捕获另一种异常
    异常2的处理方案

except Exception as e:
    # 【万能捕获】捕获所有异常(最后写)
    所有未捕获异常的处理

else:
    # 【可选】没有发生任何异常,才执行
    程序正常运行的代码

finally:
    # 【可选】无论是否异常,一定会执行
    # 常用于:关闭文件、关闭连接、清理资源
    必须执行的代码

语法要点

  1. try:只有里面的代码会被监控异常

  2. except:匹配异常类型,进行特定处理

  3. Exception:所有异常的父类,能捕获全部异常

  4. else:无异常才执行

  5. finally:有无异常都执行(必执行)

四、基础代码示例

示例1:捕获除0错误 + 万能捕获

python 复制代码
try:
    a = 10
    b = 0
    result = a / b  # 会报 ZeroDivisionError 异常
    print(result)

# 捕获指定异常
except ZeroDivisionError as e:
    print("捕获到异常:不能除以0!")
    print("异常信息:", e)

# 捕获其他所有异常
except Exception as e:
    print("发生未知错误:", e)

else:
    print("程序运行完全正常")

finally:
    print("=== 无论是否报错,我都会执行 ===")

示例2:捕获类型错误

python 复制代码
try:
    num = "123"
    sum = num + 10  # 字符串+数字,报 TypeError

except TypeError as e:
    print("错误:数据类型不匹配")

五、异常的传递性

  1. 异常会从内到外、从下到上传递(函数嵌套中)

  2. 出错的函数 → 调用它的函数 → 主函数

  3. 直到被except捕获,若全程没捕获,程序崩溃报错

代码演示传递

python 复制代码
# 函数3:出错的地方
def func03():
    print(10 / 0)  # 异常诞生

# 函数2:调用函数3
def func02():
    func03()

# 函数1:调用函数2
def func01():
    func02()

# 主函数:最终捕获
try:
    func01()
except Exception as e:
    print("主函数捕获到了传递上来的异常:", e)

结论:异常从func03→func02→func01→main,最终被捕获。

六、报错查看技巧

  • 报错信息最后一行:具体异常类型 + 原因

  • 往上看:报错代码位置、函数调用链条

  • 直接定位最后一行,最快找到bug根源

总结

  1. 异常=运行时bug,会中断程序

  2. try监控代码,except捕获处理,Exception捕获全部

  3. else无异常执行,finally必执行

  4. 异常会向上传递,直到被捕获

相关推荐
充钱大佬29 分钟前
Python测试基础教程
python·log4j·apache
心中有国也有家3 小时前
AtomGit Flutter 鸿蒙客户端: ChangeNotifier 模式
学习·flutter·华为·harmonyos
初心丨哈士奇3 小时前
Python 四大基础容器|列表篇
python
取地址符3 小时前
C++学习笔记(基于learn-cxx)(1)
c++·经验分享·笔记·学习
明理的信封4 小时前
AI 基础设施的“去 Python 化“:Rust 与 C# 的两条替代路径
人工智能·python·rust
ysa0510304 小时前
【板子】ST表
c++·笔记·算法·板子
恣逍信点4 小时前
主观是客观的聚焦
人工智能·学习·程序人生·生活·业界资讯·交友·哲学
打球她不香吗5 小时前
本周ALLegro学习内容的总结
学习·allegro
麻雀飞吧5 小时前
2026年AI量化开发,先跑通小流程再加复杂功能
人工智能·python
risc1234565 小时前
肌肉收缩会释放大量的肌细胞因子能抑制体内炎症因子
笔记