Python程序设计基础-Chap09-异常

PPT
  • 阅读 117 次
  • 下载 0 次
  • 页数 15 页
  • 大小 552.500 KB
  • 2022-11-12 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档10.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
Python程序设计基础-Chap09-异常
可在后台配置第一页与第二页中间广告代码
Python程序设计基础-Chap09-异常
可在后台配置第二页与第三页中间广告代码
Python程序设计基础-Chap09-异常
可在后台配置第三页与第四页中间广告代码
Python程序设计基础-Chap09-异常
Python程序设计基础-Chap09-异常
还剩5页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 15
  • 收藏
  • 违规举报
  • © 版权认领
下载文档10.00 元 加入VIP免费下载
文本内容

【文档说明】Python程序设计基础-Chap09-异常.ppt,共(15)页,552.500 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-2386.html

以下为本文档部分文字说明:

第9章异常和异常处理内容提纲9.1文件和文件路径29.2文件的读写39.3文件定位4359.4文件相关函数及综合应用19.5CSV文件操作引例在前面的上机实践过程中,读者可能遇到过很多错误或异常。错误一般指语法错误,

通常是由于我们没有正确掌握语法或输入代码过程中出错而造成的。这需要编程者自己尽力在编码和输入过程中避免。异常即是一个事件。该事件会在程序执行过程中发生,影响了程序的正常执行。引例❖下面的代码根据用户输入的身高和体重数据计算用户的体重系数BMI。❖>>>height=f

loat(input("enteryourheight(m):"))❖>>>weight=float(input("enteryourweight(kg):"))❖>>>bmi=round((weight/(height*h

eight)),2)❖>>>print("yourBMIis:",bmi)❖程序要求输入合理的数据,一旦用户误将身高数据输入为0,则程序会出现异常突然退出,并伴随一堆错误信息,如下所示:❖Traceback(mostre

centcalllast):❖File"C:/Users/ws/PycharmProjects/untitled1/ws.py",line3,in<module>❖bmi=round((weight/(height*height)),2)❖ZeroDivisionEr

ror:floatdivisionbyzero9.1错误和异常9.1.1语法错误语法错误,也称作解析错误,也许是学习Python过程中最常见的。下面的代码中print有拼写错误。prin("hello,world")Traceback(mostrecentcallla

st):File"<pyshell#12>",line1,in<module>prin("hello,world")NameError:name'prin'isnotdefined语法分析器指出错误行为第1行,因为p

rint少了一个“t”。错误会输出文件名和行号,所以如果是从脚本输入的你就知道去哪里检查错误了。这类错误需要编程者自己不断提高编辑和编程水平来减少发生的频率,而不能指望Python系统帮我们解决。9.1错误和异常❖9.1.2异常❖即使一条语句或表达式在语法上是正确的,当试图执行它时也可能会引发错

误。运行期检测到的错误即为异常。❖>>>20*(10/0)❖Traceback(mostrecentcalllast):❖File"<pyshell#13>",line1,in<module>❖20*(10/0)❖ZeroDivisionError:divis

ionbyzero❖以上代码出现除数为0的异常。❖>>>20+mycar❖Traceback(mostrecentcalllast):❖File"<pyshell#16>",line1,in<module>❖20+mycar❖NameError:name'mycar'isnotd

efined9.1错误和异常异常名称描述BaseException所有异常的基类KeyboardInterrupt用户中断执行(通常是输入^C)Exception常规错误的基类ArithmeticError所有数值计算错误的基类FloatingPointError浮点计算错误

OverflowError数值运算超出最大限制ZeroDivisionError除(或取模)零(所有数据类型)IOError输入/输出操作失败IndexError序列中没有此索引(index)KeyError映射中没有这个键MemoryError内存溢出错误(对于P

ython解释器不是致命的)NameError未声明/初始化对象(没有属性)9.2异常处理❖9.2异常处理❖为了使程序在发生异常时不崩溃,编程者需要按特定语法格式处理异常,使得程序可以继续运行。比如一个程序要求用户输入年龄,显然程序期待的是一个数字,但如果用户输入了“

ab”这样的字符串值(用户很容易输入类似的数据),程序若没有处理异常的代码就会退出运行,提示用户发生了“ValueError”异常。程序这样轻易就崩溃,将会使用户非常恼火。合理的处理方式是,当异常发生时程序要处理它,并提示用户输入正确格式的数字。9.2异常处理▪9.2.1异常处理语法▪异常处理语

法结构如下:▪try:▪<body>▪except<ExceptionType1>:▪<handler1>▪…▪except<ExceptionTypeN>:▪<handlerN>▪except:▪#上一句except分支不指定任何类

型的异常,表示可以匹配任何异常类型。▪<handlerExcept>▪else:▪<process_else>▪finally:▪<process_finally>9.2异常处理❖9.2.2常见异常处理示例❖下面代码处理打开文件异常。❖try:❖fh=open("testfile"

,"r")❖mystr=fh.read(20)❖exceptIOError:❖print(“没有找到文件或读取文件失败")❖else:❖print(mystr)❖fh.close()9.2异常处理▪执行以上代码

,如果当前目录下不存在testfile这个文件,则程序产生异常,此异常被excepIOError分支捕获,程序将输出:没有找到文件或读取文件失败。如果文件存在,则程序会顺利打开文件并执行else分支,输出文件中的前20个字符,然后关闭文件,程序退出。9.3抛出异常和自

定义异常▪9.3.1如何抛出异常▪当程序出现错误时,Python会自动引发异常,也可以通过raise显式地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。换句话说,raise语句允许程序员在任何必要的时候强制抛出一个指定的异常,而不必等Python引发。语法格式

如下:▪raiseexceptionName▪即只要在raise关键字后跟上一个异常类型名,就可立即引发一个异常,改变程序的执行路径。9.3抛出异常和自定义异常❖9.3.2用户自定义异常❖用户可以自己创建异常。Python中异常是类,创建异常,就是创建一个异常子类。

通过继承,将异常类的所有基本特点保留下来。通过这种方式,程序可以命名它们自己的异常。自定义异常是通过扩展BaseException类或BaseException的子类来定义一个新的异常。❖BaseException类是所有异常类的父亲,所有的Python异常类都直接或间接地继承自BaseExce

ption类。❖定义异常类的语法:❖classMyException(Exception):❖pass❖MyException是自定义异常类名,Exception是异常基类。本章小结❖本章介绍了一些常见的异常类型及异

常处理方法,简单说明了如何手动抛出异常、自定义异常等知识点。通过本章的学习,读者要理解错误与异常的区别和联系,理解异常处理与程序健壮性的关系,掌握处理常见异常的一般方法和原则。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?