Python编程基础 PPT课件第4章 异常处理.pptxVIP

Python编程基础 PPT课件第4章 异常处理.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第4章异常处理;语法错误

网络中断

文件不存在

用户输入不合法

……;通过Python的异常处理机制对程序运行时可能出现的错误做好预案处理,可以使我们编写的程序具有:

;学习目标/Target;在编写和运行Python程序时我们遇到的错误可以分为两种不同的情况:

;概念:由于编程句法(关键字的拼写、缩进、中英文符号等)引起的错误,我们可以称之为句法错误或解析错误,这种错误导致程序任何时刻都无法运行。

解决这种错误需要修改程序,直至所有的句法问题都得到解决后才能运行。;句法错误;什么是运行异常?;运行异常;为了程序的健壮性,在程序执行时遇到异常不至于崩溃,或者为了程序的友好性,出现异常时能给用户一个友好、清晰的说明或提示,我们需要在设计程序之初就考虑到一旦程序运行过程中遇到可能出现的异常情况的处理流程,这种“未雨绸缪”的编码我们称之为异常处理。;4.2异常处理的基本语法;为了使发生异常后的程序代码正常执行,程序需要捕获异常并进行处理,Python提供了try…except语句用于捕获并处理异常。其基本语法格式如下:;可简化为:;语法格式;语法格式;处理流程;当程序中出现多种异常,可以采用以下处理方式:

;处理多种异常;多个except后面的异常类型之间有父子继承关系,则应遵守:

处理子类异常的except子句在前,处理父类异常的except子句在后;

具体except子句和空类except子句(except后面没有类型)连用,则确保空类except在最后(做兜底处理)。;处理多种异常;try块中如果有多种异常,除了可以通过多个except子句的形式来处理,也可以在一个except子句中把异常列到一个元组中来处理。;处理多种异常;异常处理的基本语法

处理多种异常的两种方式

使用多个except语句

使用异常元组形式;在异常处理时,如果except子句中没有指定异常类型,则对应的try语句块中的所有异常都可以被此except子句处理。;一次性处理所有异常;else子句后跟当程序没有发生异常时,需要执行的代码块。

try...except语句具有可选的else子句,该子句如果存在,它必须放在所有except子句之后。如果try子句中没有异常,则执行else???句。;else子句;else子句;区别:使用else子句可以避免意外捕获else子句中现有的代码触发的异常。

也就是说else子句中如果也会发生异常,则现有的try...except...else结构不会捕获,而放置到try块中的代码一旦发生异常就可能会被except子句捕获。;可选的finally块中的代码无论try块中是否发生异常都会执行,所以finally子句主要用来定义资源的清理和释放操作。;finally子句;如果存在finally子句,则finally子句是try语句结束前执行的最后一项任务。不论try语句是否触发异常,都会执行finally子句。;触发异常情景:

如果执行try子句期间触发了某个异常,则某个except子句应处理该异常。如果该异常没有except子句处理,在finally子句执行后会被重新触发。

except或else子句执行期间也会触发异常。同样,该异常会在finally子句执行之后被重新触发。

如果finally子句中包含break、continue或return等语句,异常将不会被重新引发。

;触发异常情景:

如果执行try语句时遇到break,、continue或return语句,则finally子句在执行break、continue或return语句之前执行。

如果finally子句中包含return语句,则返回值来自finally子句的某个return语句的返回值,而不是来自try子句的return语句的返回值。

在实际应用程序中,finally子句对于释放外部资源(例如文件或者网络连接)非常有用,无论是否发生异常都能保证申请的资源能得到释放。

;一次性处理所有异常

else子句的使用

finally子句的使用

;虽然大多数情况下我们希望程序能顺利运行,最好不要发生异常。但是有时候我们却需要在程序中编写代码人为的引发异常,使程序不再继续向下正常执行。;raise语句可以在执行时引发异常,其语法格式为:

;常用的三种用法:

(1)单独一个raise:此用法会重新引发当前上下文中捕获的异常或默认引发RuntimeError异常。

raise

(2)raise异

文档评论(0)

allen734901 + 关注
实名认证
文档贡献者

副教授持证人

知识共享

领域认证该用户于2024年11月14日上传了副教授

1亿VIP精品文档

相关文档