6-2.Python 异常处理 - 异常捕获(捕获指定异常、常见异常类型、异常信息)

一、捕获指定异常

1、基本介绍
  1. 捕获一个指定异常,except 后面跟一个指定异常
python 复制代码
try:
    【可能发生异常的代码】
except 【指定异常】:
    【捕获异常后执行的代码】
  1. 捕获多个指定异常,except 后面跟多个指定异常,使用括号 () 括起来,并使用逗号 , 分隔
python 复制代码
try:
    【可能发生异常的代码】
except (【指定异常】, 【指定异常】...):
    【捕获异常后执行的代码】
  1. 捕获所有异常
python 复制代码
try:
    【可能发生异常的代码】
except Exception:
    【捕获异常后执行的代码】
  • 注:如果【可能发生异常的代码】抛出的异常和【指定异常】的类型不一致,则无法实现有效捕获
2、演示
  1. 捕获一个指定异常
python 复制代码
try:
    result = 1 / 0
except ZeroDivisionError:
    print("除数不能为 0")
复制代码
# 输出结果

除数不能为 0
  1. 捕获多个指定异常
python 复制代码
try:
    result = 1 / 0
except (ZeroDivisionError, NameError):
    print("除数不能为 0")
复制代码
# 输出结果

除数不能为 0
  1. 捕获所有异常
python 复制代码
try:
    result = 1 / 0
except Exception:
    print("除数不能为 0")
复制代码
# 输出结果

除数不能为 0
  1. 无效捕获
python 复制代码
try:
    result = 1 / 0
except NameError:
    print("除数不能为 0")
复制代码
# 输出结果

ZeroDivisionError: division by zero

二、常见异常类型

异常类型 说明
AttributeError 尝试访问对象不存在的属性时引发
IOError 输入操作失败时引发
OSError 输出操作失败时引发
ImportError 无法导入模块或包时引发
IndexError 使用非法的索引访问数据容器(例如,列表)的元素时引发
KeyError 访问字典中不存在的键时引发
NameError 尝试访问未声明的变量时引发
TypeError 操作或函数应用于不适当类型的对象时引发
ValueError 操作或函数接收到具有正确类型但不合适的值时引发
ZeroDivisionError 除数或模数为零时引发

三、异常信息

1、基本介绍
  • 将捕获到的异常绑定到变量 e,在【捕获异常后执行的代码】中便可以使用它
  1. 捕获一个指定异常并绑定到变量 e
python 复制代码
try:
    【可能发生异常的代码】
except 【指定异常】 as e:
    【捕获异常后执行的代码】
  1. 捕获多个指定异常并绑定到变量 e
python 复制代码
try:
    【可能发生异常的代码】
except (【指定异常】, 【指定异常】...) as e:
    【捕获异常后执行的代码】
  1. 捕获所有异常并绑定到变量 e
python 复制代码
try:
    【可能发生异常的代码】
except Exception as e:
    【捕获异常后执行的代码】
2、演示
  1. 捕获一个指定异常并绑定到变量 e
python 复制代码
try:
    result = 1 / 0
except ZeroDivisionError as e:
    print("除数不能为 0")
    print(e)
复制代码
# 输出结果

除数不能为 0
division by zero
  1. 捕获多个指定异常并绑定到变量 e
python 复制代码
try:
    result = 1 / 0
except (ZeroDivisionError, NameError) as e:
    print("除数不能为 0")
    print(e)
复制代码
# 输出结果

除数不能为 0
division by zero
相关推荐
ZoeLandia1 小时前
React08:自定义 Hook
开发语言·前端·react.js·typescript
zh路西法1 小时前
【模型式强化学习】(三):MBPO——短轨迹生成与模型数据驱动的策略优化
python·强化学习·pe·sac·pets·mbpo·mbrl
Angeldream1231 小时前
第 9 章 医学影像项目实战
大数据·图像处理·人工智能·python·医学影像处理
ZhengEnCi1 小时前
一亿条数据取前100条完全指南:从全量排序到分块流式最小堆的4种解法实测
python·算法·排序算法
2601_967979121 小时前
AccessControl 5.4 macOS Python 3.9 版本安装包
python·macos·security·accesscontrol·permissions
zaizai10071 小时前
STL深度剖析2
java·c++·算法
2501_915921431 小时前
iOS 实时日志怎么看?KeyMob 的日志过滤、崩溃报告与符号化
android·ios·小程序·https·uni-app·iphone·webview
染指11101 小时前
157.Agent-LangGraph-工具(实现ReAct Agent模式)
开发语言·人工智能·python·langchain·agents
A-刘晨阳1 小时前
同一句需求优化前后差多少?Prompt Optimizer先整理提示词,再用同一个模型直接对比结果
运维·prompt·cpolar