千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:青岛千锋IT培训  >  技术干货  >  python上下文管理器如何解决异常?

python上下文管理器如何解决异常?

来源:千锋教育
发布人:xqq
时间: 2023-11-09 02:46:11

python上下文管理器如何解决异常?

本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。

1、异常说明

异常可以在__exit__进行捕获并由你自己决定如何处理,是抛出还是不抛出。在__exit__里返回True(没有return就默认为returnFalse),就相当于告诉Python解释器,这个异常我们已经捕获了,不需要再往外抛了。

2、参数

在写__exit__函数时,需要注意的事,它必须要有这三个参数:

exc_type:异常类型

exc_val:异常值

exc_tb:异常的错误栈信息

当主逻辑代码没有报异常时,这三个参数将都为None。

3、异常实例

如果我们需要对异常做特殊处理,就可以在这个方法中实现自定义逻辑。

之所以with能够自动关闭文件资源,就是因为内置的文件对象实现了上下文管理器协议,这个文件对象的__enter__方法返回了文件句柄,并且在__exit__中实现了文件资源的关闭,另外,当with语法块内有异常发生时,会抛出异常给调用者。

classFile:

def__enter__(self):

returnfile_obj

def__exit__(self,exc_type,exc_value,exc_tb):

#with退出时释放文件资源

file_obj.close()

#如果with内有异常发生抛出异常

ifexc_typeisnotNone:

raiseexception

以上就是python上下文管理器解决异常的方法,大家在学会后,也可以选择这种方式来处理异常,会省去我们抛出异常的选择,对于简化工作是非常有效的。更多Python学习教程请关注IT培训机构:千锋教育。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

python如何提取文本信息?

2023-11-14

python基类是什么意思

2023-11-14

python生成器推导式是什么

2023-11-14

最新文章NEW

python__del__方法的使用

2023-11-14

python参数中默认值的执行

2023-11-14

python内置作用域是什么

2023-11-14

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>