python上下文管理器怎么解决异常-成都快上网建站

python上下文管理器怎么解决异常

这篇文章给大家分享的是有关python上下文管理器怎么解决异常的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

创新互联公司专业为企业提供七台河网站建设、七台河做网站、七台河网站设计、七台河网站制作等企业网站建设、网页设计与制作、七台河企业网站模板建站服务,十多年七台河做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

Python主要用来做什么

Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开发;5、游戏开发;6、桌面应用开发。

本文教程操作环境: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上下文管理器怎么解决异常
文章位置:http://kswjz.com/article/jjopdj.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流