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

下载本文档

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

文档简介

异常高阶教学目标1.掌握异常链

2.掌握with语句和上下文管理器

3.了解异常在调试中的作用

4.了解性能的考虑

异常链使用raise...from...链接相关异常。核心概念:在Python3中,__cause__属性追踪根因,便于调试复杂错误。1、异常链

#异常链try:int("abc")#引发ValueErrorexceptValueErrorase:raiseTypeError("Typemismatch")frome#链上新异常#输出Traceback显示链:TypeErrorcausedbyValueErrorwith语句使用上下文管理器自动处理资源,隐式异常处理。核心概念:__enter__和__exit__方法管理,如文件打开。抑制异常用__exit__返回True。2.with语句和上下文管理器#with语句withopen("file.txt","r")asf:#自动关闭content=f.read()#读取,可能异常#如果异常,__exit__处理关闭异常在调试中提供栈追踪,帮助定位问题。核心概念:使用traceback模块格式化输出,或pdb集成异常。可用raise调试。3.异常在调试中的作用importtraceback#导入traceback模块try:1/0#引发异常exceptExceptionase:traceback.print_exc()#打印详细栈追踪异常处理有开销,仅在异常路径影响性能。核心概念:正常路径零成本,但频繁抛出慢。避免在循环中使用try-except,除非必要。4.性能考虑

#性能考虑示例importtime#导入timestart=time.time()try:foriinrange(1000000):#大循环pass#无异常except:passprint(time.time()-start)#测量时间,几乎零开销最佳实践包括捕获具体异常、使用finally清理、避免裸except、记录异常。核心概念:遵循EAFP,优先尝试后处理。自定义异常清晰。5.最佳实践#最佳实践importlogging#导入loggingtry:risky_operation()#可能出错exceptSpecificErrorase:#具体捕获logging.error(f"Error:{e}")#记录finally:cleanup()#清理异步中使用await处理。在Python中,asyncio捕获。核心概念:异步异常在coroutine。6.异常在异步编程中importasyncio#导入asyncdefcor():raiseValueError("Async")#抛出asyncdefmain():#主try:#尝试awaitcor()exceptValueError:#处理print("Caught")asyncio.run(main())#运行优化避免频繁抛出,使用条件检查。在Python中,零成本正常路径。核心概念:优化平衡安全性能。7.异常性能优化#优化ify==0:#检查避免异常print("Zero")else:#正常print(x/y)小结1.异常链允许在Python中链接相关异常,通过__cause__属性追踪根因2.with语句通过__enter__和__exit__方法自动管理资源,如文件操作,可抑制异常3.

温馨提示

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

评论

0/150

提交评论