《Python程序设计》课件8-异常处理.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

~1~第八章异常处理

目录异常基本概念异常处理结构主动抛出异常断言上下文管理编程实践本章习题-2-

1.异常基本概念当程序运行出现错误时,就会产生异常(Exception)例如除以0、下标越界、文件不存在、网络异常、类型错误、磁盘空间不足等软件的发展历史告诉我们:异常是不可避免的因此,正视异常,允许异常的产生,当异常产生了,采取适当措施处理异常即可常见的Python异常类型ValueError:当函数接收到一个具有正确类型但不适当值的参数时触发TypeError:当操作或函数应用于不适当类型的对象时触发IndexError:当序列中没有此索引(index)时触发KeyError:当字典中不存在指定的键时触发ZeroDivisionError:当除数为零时触发FileNotFoundError:当尝试访问不存在的文件时触发3

例1:尝试访问不存在的字典键会触发KeyError:my_dict={a:1,b:2}print(my_dict[c])#KeyError:c’通过检查键是否存在于字典中,或使用dict.get()方法,可以避免这种错误不适当的类型会触发TypeError:name=StudentNO.+1#TypeError:canonlyconcatenatestr(notint)tostr修改为:name=StudentNo.+str(1)4

2.异常处理结构语法异常:在调试(debug)程序过程中即可发现错误,根据系统的错误提示改正即可异常处理流程:但有些错误却在调试时不易发现,比如网络异常、磁盘空间不足、下标越界等,只在某些特定条件下才可能发生。通过预先设计合适的异常处理机制,程序在遇到异常情况时能够自动执行这些处理流程,从而有效地纠正或管理这些异常这种做法不仅提高了程序的稳定性,而且确保了在遭遇意外情况时程序仍能平稳运行或优雅地终止5

异常处理结构异常处理结构在Python编程中,处理异常的基础结构是使用try...except...语句。这种结构使得开发者能够捕捉并妥善处理在程序执行过程中可能出现的异常,从而防止程序意外崩溃基本语法结构如下:try:#这部分是可能出现异常的代码块exceptException[asreason]:#这部分是当捕捉到异常时执行的代码块,reason变量用于获取异常的具体信息异常处理的逻辑如果try代码块中的语句运行无异常:程序将跳过except块,继续执行后续代码如果try代码块中出现异常,且该异常被except子句捕获:那么程序将执行except子句中的异常处理代码如果try代码块中出现异常,但未被except捕获:则异常会被向外抛出如果所有层次都没有捕获和处理该异常:程序最终将终止,并向用户显示异常信息6

例:whileTrue:try:x=int(input(Pleaseenteranumber:))breakexceptValueError:print(Thisisnotavalidnumber.Pleasetryagain...)如果用户输入的不是数字,将产生ValueError异常7

扩展的异常处理结构除了基本的try...except...结构外,还可以加入else和finally语句,以及多个except子句,形成更完整的异常处理流程扩展的语法结构try:#可能引发异常的代码exceptException1[asreason1]:#处理第一种类型的异常exceptException2[asreason2]:#处理第二种类型的异常...else:#如果没有异常发生,则执行这个代码块finally:#无论是否发生异常,都会执行这个代码块,通常用于释放资源8

例:try:#尝试执行的代码,可能会产生异常result=10/0exceptZeroDivisionError:#处理除零异常print(不能除以零。)exceptTypeError:#处理类型错误异常print(类型错误。)else:#如果没有异常发生print(操作成功。)finally:#无论是否发生异常print(操作完成。)9

3.主动抛出异常raise语句:允许程序员强制触发指定的异常,这在需要明确指出错误条件或强制执行特定错误处理逻辑时非常有用基本语法结构:raiseExceptionType(错误信息)ExceptionType是要抛出的异常类型

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档