Python——异常捕获

为什么要捕获异常?

为了当程序遇到bug时,不会直接崩溃,而是对异常进行捕获并处理,使整个程序继续运行

异常的捕获方式

捕获常规异常:

try:

可能发生错误的代码

except:

如果出现异常执行的代码

一行语句中可能出现多个异常

捕获指定异常:

try:

可能发生错误的代码

except 异常类型 as 异常对象:

如果出现异常执行的代码

【常见异常类型:NameError :访问未定义变量;UnboundLocalError :局部变量未赋值就引用;AttributeError :对象无此属性 / 方法;TypeError :类型不匹配(操作 / 函数不支持该类型);ValueError :类型正确但值非法;ZeroDivisionError:除数为 0】

捕获全部异常使用Exception的异常类型】

捕获多个异常:

把要捕获的异常类型名字以元组的方式进行书写。

异常else表示的是如果没有异常要执行的代码

异常finally表示的是无论是否异常都要执行的代码

异常的传递性:

函数 / 代码块里抛出的异常若未被捕获,会沿调用栈逐层向上传递,直到被 try...except 处理,或到顶层导致程序崩溃。

可以利用异常的传递性在高层级捕获所有异常

相关推荐
今天AI了吗28 分钟前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·数据库·人工智能·python·sql·深度学习·机器学习
卷无止境35 分钟前
Windows 上丝滑开发 Python,并稳定构建 Docker 镜像
后端·python·docker
TELL5211 小时前
selenium webdriver 第二次初始化的异常
开发语言·python
Csvn1 小时前
🐍 Day 4: Python 控制流 — 条件、循环与推导式的艺术
后端·python
动词ing1 小时前
【C语言】自定义函数+指针入门
c语言·开发语言·算法
重生之后端学习2 小时前
283. 移动零[简单]✅
开发语言·数据结构·算法·leetcode·职场和发展
动词ing3 小时前
【C语言】结构体+文件基础
c语言·开发语言·数据结构
caimouse3 小时前
ReactOS 窗口系统分析(7):分层窗口与绘制辅助 — layered.c + draw.c
c语言·开发语言
丰锋ff3 小时前
基于 Qt 的智慧社区物业管理系统
开发语言·qt
夜不会漫长4 小时前
C++入门(1)
开发语言·c++·算法