- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Python try except异常处理详解
Pyt hon 提供了t ry except 语句捕获并处理异常,该异常处理语句的基本语法结构如下 :
t ry:
可能产⽣异常的代码块
except [(Error1, Error2, ...) [as e]]:
处理异常的代码块1
except [(Error3, Error4, ...) [as e]]:
处理异常的代码块2
该格式中,[] 括起来的部分可以使⽤,也可以省略 ;(Error1,Error2,...) 、(Error3,Error4,...) 表
示各 ⾃的 except 块可以处理异常的具体类型 ;[as e] 表示将异常类型赋值给变量 e (⽅便在
except 块中调⽤异常类型)。
注意,except 后⾯也可以不指定具体的异常名称,这样的话,表示要捕获所有类型的异常。
另外,从 t ry except 的基本语法格式可以看出,t ry 块仅有⼀个,但 except 代码块可以有多
个,这是为了针对不同的异常类型提供不同的异常处理⽅式。当程序发⽣不同的意外情况时,
会对应不同的异常类型,Pyt hon 解释器就会根据该异常类型来决定使⽤哪个 except 块来处
理该异常。
通过在 t ry 块后提供多个 except 块可以⽆须在异常处理块中使⽤ if 判断异常类型,但依然可
以针对不同的异常类型提供相应的处理逻辑,从⽽提供更细致、更有条理的异常处理逻辑。
t ry except 语句的执⾏流程如下 :
1. ⾸先执⾏ t ry 中的代码块,如果执⾏过程中出现异常,系统会 ⾃动⽣成⼀个异常对象,该
异常对象会提交给 Pyt hon 解释器,此过程被称为引发异常。
2. 当 Pyt hon 解释器收到异常对象时,会寻找能处理该异常对象的 except 块,如果找到合
适的 except 块,则把该异常对象交给该 except 块处理,这个过程被称为捕获异常。如
果 Pyt hon 解释器找不到捕获异常的 except 块,则程序运⾏终⽌,Pyt hon 解释器也将退
出。
事实上,不管程序代码块是否处于 t ry 块中,甚⾄包括 except 块中的代码,只要执⾏该代码
块时出现了异常,系统总会 ⾃动⽣成⼀个 Error 对象。如果程序没有为这段代码定义任何的
except 块,则 Pyt hon 解释器⽆法找到处理该异常的 except 块,程序就会停⽌运⾏ ;反
之,如果程序发⽣异常,并且该异常经 t ry 捕获并由 except 处理完成,则程序会继续执⾏。
举个例⼦ :
t ry:
a int (input (输⼊被除数 :))
b int (input (输⼊除数 :))
c a / b
print (您输⼊的两个数相除的结果是 :, c )
except (ValueError, Arit hmet icError):
print (程序发⽣了数字格式异常、算术异常之⼀)
except :
print (未知异常)
print (程序继续运⾏)
程序运⾏结果为 :
输⼊被除数 :a
程序发⽣了数字格式异常、算术异常之⼀
程序继续运⾏
上⾯程序中,第 6 ⾏代码使⽤了 (ValueError, Arit hmet icError)来指定所捕获的异常类型,
这就表明该 except 块可以同时捕获这 2 种类型的异常 ;第 8 ⾏代码只有 except 关键字,
并未指定具体要捕获的异常类型,这种省略异常类的 except 语句也是合法的,它表示可捕获
所有类型的异常,⼀般会作为异常捕获的最后⼀个 except 块。
除此之外,由于 t ry 块中引发了异常,并被 except 块成功捕获,因此程序才可以继续执⾏,
才有了“程序继续运⾏”的输出结果。
访问异常信息
如果程序需要在 except 块中访问异常对象的相关信息,可以通过为 except 块添加as a来实
现。当 Pyt hon 解释器决定调⽤某个 except 块来处理该异常对象时,会将异常对象赋值给
except 块后的异常变量,程序即可通过该变量来获得异常对象的相关信息。
所有的异常对象都包含了如下⼏个常⽤属性和⽅法 :
args :该属性返回异常的错误编号和描述字符串。
errno :该属性返回异常的错误编号。
st rerror:该属性返回异常的描述宇符串。
wit h_t raceback() :通过该
您可能关注的文档
最近下载
- 2024年部编版四年级上册语文大单元作业设计第二单元作业单.pdf VIP
- 美国Megger IDAX300-350绝缘诊断分析仪使用说明书.pdf
- 六年级语文上册1-2单元测试(原卷+答案)2023-2024学年 部编版.docx
- 重油催化裂解增产丙烯研究进展.doc VIP
- 《食品添加剂应用技术》第二版 课件 任务4.2 增稠剂的使用.pptx
- 2023全国青少年文化遗产知识大赛题库附答案(401 -600 题).docx
- 双减背景下新课标单元整体作业分层设计案例 人教版初中英语八年级上册 Unit 1 Where did you go on.docx
- 《哈利波特》书籍分享ppt课件(图文).pptx
- 2.2 中国的气候第1课时 气候复杂多样教学设计 2023-2024学年湘教版地理八年级上册.docx
- 《中国特色社会主义道路的开辟与发展》参考课件.pptx VIP
文档评论(0)