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

上传人(卖家):三亚风情 文档编号:3371863 上传时间:2022-08-24 格式:PPT 页数:15 大小:535.50KB
下载 相关 举报
Python程序设计基础Chap09-异常.ppt_第1页
第1页 / 共15页
Python程序设计基础Chap09-异常.ppt_第2页
第2页 / 共15页
Python程序设计基础Chap09-异常.ppt_第3页
第3页 / 共15页
Python程序设计基础Chap09-异常.ppt_第4页
第4页 / 共15页
Python程序设计基础Chap09-异常.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、内容提纲内容提纲9.1 文件和文件路径 2 29.2 文件的读写3 39.3 文件定位4 43 35 59.4 文件相关函数及综合应用1 19.5 CSV文件操作引例 在前面的上机实践过程中,读者可能遇到过很多错误或异常。错误一般指语法错误,通常是由于我们没有正确掌握语法或输入代码过程中出错而造成的。这需要编程者自己尽力在编码和输入过程中避免。异常即是一个事件。该事件会在程序执行过程中发生,影响了程序的正常执行。引例引例v 下面的代码根据用户输入的身高和体重数据计算用户的体重系数BMI。v height=float(input(enter your height(m):)v weight=fl

2、oat(input(enter your weight(kg):)v bmi=round(weight/(height*height),2)v print(your BMI is:,bmi)v 程序要求输入合理的数据,一旦用户误将身高数据输入为0,则程序会出现异常突然退出,并伴随一堆错误信息,如下所示:v Traceback(most recent call last):v File C:/Users/ws/PycharmProjects/untitled1/ws.py,line 3,in v bmi=round(weight/(height*height),2)v ZeroDivisionE

3、rror:float division by zero9.1 错误和异常错误和异常9.1.1 语法错误语法错误,也称作解析错误,也许是学习Python 过程中最常见的。下面的代码中print有拼写错误。prin(hello,world)Traceback(most recent call last):File,line 1,in prin(hello,world)NameError:name prin is not defined语法分析器指出错误行为第1行,因为print少了一个“t”。错误会输出文件名和行号,所以如果是从脚本输入的你就知道去哪里检查错误了。这类错误需要编程者自己不断提高编辑

4、和编程水平来减少发生的频率,而不能指望Python系统帮我们解决。9.1 错误和异常错误和异常v 9.1.2 异常v 即使一条语句或表达式在语法上是正确的,当试图执行它时也可能会引发错误。运行期检测到的错误即为异常。v 20*(10/0)v Traceback(most recent call last):v File,line 1,in v 20*(10/0)v ZeroDivisionError:division by zerov 以上代码出现除数为0的异常。v 20+mycarv Traceback(most recent call last):v File,line 1,in v 20

5、+mycarv NameError:name mycar is not defined9.1 错误和异常错误和异常异常名称异常名称描述描述BaseException所有异常的基类所有异常的基类KeyboardInterrupt用户中断执行(通常是输入用户中断执行(通常是输入C)Exception常规错误的基类常规错误的基类ArithmeticError所有数值计算错误的基类所有数值计算错误的基类FloatingPointError浮点计算错误浮点计算错误OverflowError数值运算超出最大限制数值运算超出最大限制ZeroDivisionError除(或取模)零(所有数据类型)除(或取模)

6、零(所有数据类型)IOError输入输入/输出操作失败输出操作失败IndexError序列中没有此索引(序列中没有此索引(index)KeyError映射中没有这个键映射中没有这个键MemoryError内存溢出错误(对于内存溢出错误(对于Python 解释器不是致命的)解释器不是致命的)NameError未声明未声明/初始化对象(没有属性)初始化对象(没有属性)9.2 异常处理异常处理v9.2 异常处理v为了使程序在发生异常时不崩溃,编程者需要按特定语法格式处理异常,使得程序可以继续运行。比如一个程序要求用户输入年龄,显然程序期待的是一个数字,但如果用户输入了“ab”这样的字符串值(用户很容

7、易输入类似的数据),程序若没有处理异常的代码就会退出运行,提示用户发生了“ValueError”异常。程序这样轻易就崩溃,将会使用户非常恼火。合理的处理方式是,当异常发生时程序要处理它,并提示用户输入正确格式的数字。9.2 异常处理异常处理9.2.1 异常处理语法异常处理语法结构如下:try:except:except:except:#上一句except分支不指定任何类型的异常,表示可以匹配任何异常类型。else:finally:9.2 异常处理异常处理v 9.2.2 常见异常处理示例v 下面代码处理打开文件异常。v try:v fh=open(testfile,r)v mystr=fh.re

8、ad(20)v except IOError:v print(“没有找到文件或读取文件失败)v else:v print(mystr)v fh.close()9.2 异常处理异常处理 执行以上代码,如果当前目录下不存在testfile这个文件,则程序产生异常,此异常被excep IOError分支捕获,程序将输出:没有找到文件或读取文件失败。如果文件存在,则程序会顺利打开文件并执行else分支,输出文件中的前20个字符,然后关闭文件,程序退出。9.3 抛出异常和自定义异常抛出异常和自定义异常 9.3.1 如何抛出异常 当程序出现错误时,Python会自动引发异常,也可以通过raise显式地引发

9、异常。一旦执行了raise语句,raise后面的语句将不能执行。换句话说,raise 语句允许程序员在任何必要的时候强制抛出一个指定的异常,而不必等Python引发。语法格式如下:raise exceptionName 即只要在raise关键字后跟上一个异常类型名,就可立即引发一个异常,改变程序的执行路径。9.3 抛出异常和自定义异常抛出异常和自定义异常v9.3.2 用户自定义异常v用户可以自己创建异常。Python中异常是类,创建异常,就是创建一个异常子类。通过继承,将异常类的所有基本特点保留下来。通过这种方式,程序可以命名它们自己的异常。自定义异常是通过扩展BaseException类或BaseException的子类来定义一个新的异常。vBaseException类是所有异常类的父亲,所有的Python异常类都直接或间接地继承自BaseException类。v定义异常类的语法:vclass MyException(Exception):v pass vMyException是自定义异常类名,Exception是异常基类。本本 章章 小小 结结v本章介绍了一些常见的异常类型及异常处理方法,简单说明了如何手动抛出异常、自定义异常等知识点。通过本章的学习,读者要理解错误与异常的区别和联系,理解异常处理与程序健壮性的关系,掌握处理常见异常的一般方法和原则。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(Python程序设计基础Chap09-异常.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|