Python——异常捕获

为什么要捕获异常?

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

异常的捕获方式

捕获常规异常:

try:

可能发生错误的代码

except:

如果出现异常执行的代码

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

捕获指定异常:

try:

可能发生错误的代码

except 异常类型 as 异常对象:

如果出现异常执行的代码

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

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

捕获多个异常:

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

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

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

异常的传递性:

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

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

相关推荐
Metaphor6921 小时前
Python 自动化办公:如何轻松在 PDF 中导入与导出表单数据
python·pdf·自动化
H.莓飛7 小时前
【数据结构】排序_OJ题(一):计数、桶与排序后的处理
java·开发语言·数据结构
wangchunyu1148 小时前
JAVA AQS与Lock实现原理(含CAS)
java·开发语言·word
爱喝水的鱼丶9 小时前
SAP-ABAP:ECC→S/4HANA ABAP 迁移升级指南——程序改造、语法兼容与性能优化 导语
运维·开发语言·性能优化·sap·abap·经验交流·开发交流
小灰灰搞电子9 小时前
Rust+Slint 实现FTP客户端调试助手源码分享
开发语言·后端·rust
外收内放9 小时前
面向对象高级(实战案例)
开发语言·python·学习
专业程序开发源10 小时前
springboot欧缇蔓月子中心管理系统82697-计算机课程设计、毕业设计
java·spring boot·后端·python·spring·django·课程设计
FPGA小迷弟10 小时前
用 Claude Code 重构遗留系统:从评估到落地的完整实践指南
c++·python·ai·plotly·django·ai编程·claude
卷无止境10 小时前
面向arm64桌面客户端开发全景:语言、框架与生态
后端·python
fanruitian10 小时前
python else用法
开发语言·python