您现在的位置是:课程教程文章
python上下文管理器如何解决异常?
2023-12-14 22:43课程教程文章 人已围观
-
Power Pivot
Power Pivot一、DAX进阶 1、计算上下文之筛选上下文 2、有条件的计算问题 3、改变筛选上下... -
Oracle EMCC企业管理器云控制集中监控平台
Oracle EMCC企业管理器云控制集中监控平台企业管理器云控制Enterprise Manager Cloud Control 13c是一个Oracle的集中管理监控平台,... -
Kubernetes/K8s应用包管理器Helm实战(v3版本
Kubernetes/K8s应用包管理器Helm实战(v3版本通俗易懂的“微服务部署利器Helm”视频教程!! Helm是Kubernetes的应用包管理器... -
zbrush 输出alpha深度信息差别很大,如何解
zbrush 输出alpha深度信息差别很大,如何解...
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
1、异常说明
异常可以在__exit__ 进行捕获并由你自己决定如何处理,是抛出还是不抛出。在__exit__ 里返回 True(没有return 就默认为 return False),就相当于告诉 Python解释器,这个异常我们已经捕获了,不需要再往外抛了。
2、参数
在 写__exit__ 函数时,需要注意的事,它必须要有这三个参数:
exc_type:异常类型
exc_val:异常值
exc_tb:异常的错误栈信息
当主逻辑代码没有报异常时,这三个参数将都为None。
3、异常实例
如果我们需要对异常做特殊处理,就可以在这个方法中实现自定义逻辑。
之所以 with 能够自动关闭文件资源,就是因为内置的文件对象实现了上下文管理器协议,这个文件对象的 __enter__ 方法返回了文件句柄,并且在 __exit__ 中实现了文件资源的关闭,另外,当 with 语法块内有异常发生时,会抛出异常给调用者。
class File: def __enter__(self): return file_obj def __exit__(self, exc_type, exc_value, exc_tb): # with 退出时释放文件资源 file_obj.close() # 如果 with 内有异常发生 抛出异常 if exc_type is not None: raise exception
以上就是python上下文管理器解决异常的方法,大家在学会后,也可以选择这种方式来处理异常,会省去我们抛出异常的选择,对于简化工作是非常有效的。
上一篇:python中@contextmanager是什么?
下一篇:没有了