《Python基础》课件-第九章-异常处理_第1页
《Python基础》课件-第九章-异常处理_第2页
《Python基础》课件-第九章-异常处理_第3页
《Python基础》课件-第九章-异常处理_第4页
《Python基础》课件-第九章-异常处理_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

异常处理101认识异常定好为什么会出现异常:程序本身不健壮;网络原因;文件原因;数据库原因系统环境原因…….异常原因由此可见:程序在运行中发生异常/错误是不可避免的,程序员在开发应用程序时,一定要有异常意识和处理策略。目的:规范设计风格;增强程序稳定性;避免运行灾难;提高程序质量……正视异常,就是正视自己的错误!01认识异常定好异常示例:tup=(10,23,45,67,82)i=len(tup)while(i>=0):print(tup[i])i-=1异常概念withopen(r'data\test.txt','r')asf:forcontentinf:print(content)所有异常类均在内置模块exceptions中常见异常类有:NameErrorZeroDivisionErrorIndexErrorKeyError02Python异常类AttributeErrorSyntaxErrorFileNOTFoundErrorTypeError……ExceptionIndexErrorNameErrorZeroDivisionError……异常处理的三大步骤:03异常处理语句如出现异常,生成异常对象,交给python解释器处理-抛出异常;解释器接受到异常对象,寻找对应代码捕获--处理异常;若找不到处理异常的方法,则终止运行时,退出应用程序-错误退出。defdiv(x,y):try:returnx/yexceptZeroDivisionError:print('除数不能为0')exceptTypeError:print('输入参数必须为数字')try…except语句:try:语句块exceptexcepName1:异常处理代码1exceptexcepName2:异常处理代码2try…except…else…finally语句:03异常处理语句Else:无异常发生时执行的语句;Finally:必须处理的语句。importcsvdefreadCsv(filename):f=Nonetry:f=open(filename,'r',encoding='utf-8')reader=csv.reader(f)forcontentinreader:print(content)exceptFileNotFoundError:print('文件不存在')else:print('文件读取完毕')finally:iff!=None:f.close()print('文件正常关闭')异常处理201抛出异常定好原因:显式抛出异常,由用户自己来处理异常;一些具体的应用场所,该异常不能忽略,必须处理为什么要抛出异常?语法格式:raise异常类;raise异常类对象(‘消息描述’);raise#抛出刚刚引发的异常理性的怀疑精神,踏实的钻研态度!01抛出异常定好抛出异常示例:defpayout(quota):#模拟现金支付

ifquota>10000:raiseException('支付金额超界')else:returnquota*0.9#扣10%的税抛出异常语法try:pay=float(input('输入现金金额:'))print('实际支出金额:',payout(pay))exceptValueError:print('数字转换错误')exceptExceptionasmessage:print(message.args)抛出的异常在程序中是必须处理的assert语法格式:assert条件,’异常消息描述’用于用户期望的条件,如果不满足,则抛出异常以一个有条件的raise语句。02断言示例:defprime(start_num,end_num):#计算2个数之间的质数

try:assertstart_num>2andend_num>2andstart_num<end_num,'两个数必须均>2且第1个数小于第2数'lst=[]foriinrange(start_num,end_num+1):flag=Trueforjinrange(2,i):ifi%j==0:flag=Falsebreakifflag:lst.append(i)returnlstexceptExceptionasmessage:print('错误:',message.args)03上下文管理即使读写出错,with语句会关闭该文件。适用于文件读写数据库和网路连接等场合。with语句,即with代码执行完后,自动还原进入该代码之前的现场或上下文,无论是否发生异常,总能保证资源被正确释放。例如:defreadFile(filename):try:withopen(filename,'r')asfile:forcontentinfile:print(content)exceptExceptionasmessage:print('读取出错:',message.args)04自定义异常自定义异常的意义:处理可能产生的逻辑错误;及时发现问题,避免扩大影响;提高程序的容错性,使程序更加稳健。示例:请自定义一个处理输入密码错误的异常类,要求:错误码:4001;错误消息:密码至少6位。如何自定义异常类:声明一个新的异常类;为新类定义属性和方法,体现该类所对应的错误信息。不断提升自己处理错误的能力!04自定义异常classInputException(Exception):'''自定义异常类'''def__init__(self,errorcode,minLength,message):self.errorcode=errorcode#错误代码

self.minLength=minLength#最低位数

self.message=message#消息描述classInputpassword:'''输入密码'''definputPwd(self,password):try:iflen(password)<6:raiseInputException(4001,6,'密码长度最短6位')else:print('密码输入正常')exceptInputExceptionasmessage:p

温馨提示

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

评论

0/150

提交评论