9-7 定义清理操作Python程序设计基础教程(微课版第2版)_第1页
9-7 定义清理操作Python程序设计基础教程(微课版第2版)_第2页
9-7 定义清理操作Python程序设计基础教程(微课版第2版)_第3页
9-7 定义清理操作Python程序设计基础教程(微课版第2版)_第4页
9-7 定义清理操作Python程序设计基础教程(微课版第2版)_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

异常处理结构下的清理操作定义清理操作CHAPTER9定义清理操作try:raiseZeroDivisionError等待继续输入

在程序解释时报语法错误

在异常处理的结构中如果仅有try子句,当输入代码定义清理操作【例】

try子句需要定义清理操作实例>>>try:raiseZeroDivisionErrorfinally:print("百川东到海")百川东到海Traceback(mostrecentcalllast):File"<pyshell#5>",line2,in<module>raiseZeroDivisionErrorZeroDivisionError定义清理操作>>>try:raiseZeroDivisionErrorfinally:print("百川东到海")百川东到海Traceback(mostrecentcalllast):File"<pyshell#5>",line2,in<module>raiseZeroDivisionErrorZeroDivisionError异常必须清理【例】

try子句需要定义清理操作实例定义清理操作异常发生时的较为复杂的情况执行try子句发生异常没有被捕获处理被except子句捕获处理在finally子句执行后被重新引发异常在except或else子句执行期发生定义清理操作执行try语句break语句continue语句return语句finally子句将在这些语句之前被执行定义清理操作如果

finally

子句中包含一个

return

语句,则整个异常处理结构所返回的值来自finally子句的某个

return

语句的返回值,而非来自

try

子句的

return

语句的返回值定义清理操作>>>try:val=1/0exceptEOFErrorase:print(e)finally:print("都要处理finally子句!")【例】

finally

子句包含一个

return

语句定义清理操作都要处理finally子句!Traceback(mostrecentcalllast):File"<pyshell#0>",line2,in<module>val=1/0ZeroDivisionError:divisionbyzero执行结果定义清理操作都要处理finally子句!Traceback(mostrecentcalllast):File"<pyshell#0>",line2,in<module>val=1/0ZeroDivisionError:divisionbyzero执行结果定义清理操作【例】

将在try子句中各种类型的异常捕获>>>try:val=1/0exceptEOFErrorase:print(e)exceptBaseExceptionasbaseEx:print(baseEx,"被捕获!")finally:print("都要处理finally子句!")定义清理操作divisionbyzero被捕获!都要处理

finally子句!执行结果定义清理操作前例对try子句异常清理操作较彻底如果异常在except或else子句执行期间发生,那么运行结果会怎样?定义清理操作>>>try:val=1/0exceptZeroDivisionErrorase:print("执行except语句块,捕获%s异常并处理"%(e.__class__.__name__))pass

raiseBufferErrorexceptBaseExceptionasbaseEx:print(baseEx,"被捕获!")

finally:print("都要处理finally子句!")【例】except

子句已经捕获到ZeroDivisionError,在后续的处理过程中又抛出异常定义清理操作【例】上述实例的运行结果如下执行except语句块,捕获ZeroDivisionError异常并处理都要处理finally子句!Traceback(mostrecentcalllast):File"<pyshell#13>",line2,in<module>val=1/0ZeroDivisionError:divisionbyzeroDuringhandlingoftheaboveexception,anotherexceptionoccurred:Traceback(mostrecentcalllast):File"<pyshell#13>",line6,in<module>raiseBufferErrorBufferError定义清理操作>>>try:val=1/0exceptZeroDivisionErrorase:print("执行except语句块,捕获%s异常并处理"%(e.__class__.__name__))pass

raiseBufferErrorexceptBaseExceptionasbaseEx:print(baseEx,"被捕获!")

finally:print("都要处理finally子句!")【例】except

子句已经捕获到ZeroDivisionError,在后续的处理过程中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论