《Python编程基础》课件-5.3.2异常进阶_第1页
《Python编程基础》课件-5.3.2异常进阶_第2页
《Python编程基础》课件-5.3.2异常进阶_第3页
《Python编程基础》课件-5.3.2异常进阶_第4页
《Python编程基础》课件-5.3.2异常进阶_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

异常进阶教学目标1.掌握else和finally子句的使用2.掌握多个except块的编写3.了解异常对象的属性及调用方式4.掌握嵌套try-except的实现5.掌握自定义异常的定义方法else子句在try无异常时执行,finally始终执行,用于清理。核心概念:else验证成功路径,finally释放资源如关闭文件。适合文件或网络操作。1、else和finally子句

#else和finally使用try:file=open("data.txt","r")#尝试打开文件content=file.read()#读取内容exceptFileNotFoundError:#处理文件不存在print("Filenotfound.")else:#无异常时执行print("Filereadsuccessfully.")finally:#始终执行file.close()#关闭文件,防止泄漏多个except块按顺序检查异常,处理不同情况。核心概念:从具体到广义排列,避免遮挡。Python支持except(Type1,Type2):捕获多个。2.多个except块

#多个except块try:num=int("abc")#引发ValueErrorprint(10/num)#如果前一行成功,可能ZeroDivisionErrorexceptValueError:#先检查ValueErrorprint("Invalidinput.")exceptZeroDivisionError:#再检查ZeroDivisionErrorprint("Divisionbyzero.")exceptException:#捕获其他print("Othererror.")异常对象包含错误信息,使用ase访问。核心概念:e.args获取参数,str(e)获取消息。用于日志或自定义响应。3.异常对象#访问异常对象try:[][0]#引发IndexErrorexceptIndexErrorase:#使用as访问对象print(type(e))#输出:<class'IndexError'>print(e)#输出:listindexoutofrangeprint(e.args)#输出:('listindexoutofrange',)嵌套try-except在内部块处理局部异常,外层处理传播的。核心概念:允许细粒度控制,如函数内嵌套。异常可向上传播。4.嵌套try-except#嵌套try-excepttry:#外层trytry:#内层try1/0#引发ZeroDivisionErrorexceptZeroDivisionError:#内层处理print("Innererrorhandled.")raise#重新抛出,传播到外层exceptExceptionase:#外层捕获print(f"Outercaught:{e}")自定义异常通过继承Exception创建,添加特定属性。核心概念:用于业务逻辑错误,如InvalidAgeError。提高代码可读性。5.自定义异常#自定义异常classInvalidAgeError(Exception):#继承Exceptiondef__init__(self,age):#自定义初始化self.age=agesuper().__init__(f"Age{age}isinvalid.")#设置消息defcheck_age(age):#使用自定义异常ifage<0:raiseInvalidAgeError(age)#抛出check_age(-1)#引发异常函数中异常可本地处理或传播。在Python中,函数边界传播。核心概念:函数封装处理逻辑。6.异常处理在函数中deffunc():#函数try:#本地1/0exceptZeroDivisionError:#处理print("Handled")func()#调用,处理内部线程异常不传播主线程。在Python中,用Threading捕获。核心概念:线程隔离异常。7.异常与线程importthreading#导入defworker():raiseValueError("Threaderror")#抛出t=threading.Thread(target=worker)#创建线程t.start()#启动,异常在线程内t.join()#等待小结1.else子句在无异常时执行,finally子句始终执行,用于

温馨提示

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

最新文档

评论

0/150

提交评论