优草派  >   Python

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

翟嘉慧            来源:优草派

在前面的学习中,了解了Python上下文管理器的基本用法,今天这篇文章主要是向大家讲解python上下文管理器是怎么样去解决异常情况的,希望通过对这篇文章的学习,大家能学到更多的Python知识,一起来看看吧。

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

1、异常说明

在程序的运行中,难免会会出现一些异常的情况,如果不对这些情况进行处理的话,就会操作程序无法进行下一步的运行,异常我们可以使用__exit__函数进行捕获,在使用的时候是没有return语句的,而是直接返回true或者是false,在默认情况下返回的是False,这就是一种告诉解释器,这个异常已经捕获了,并且不需要在进行外抛的操作。

2、参数

在使用这个函数的时候需要注意的地方是它包含着三个参数,并且三个参数都有特别的含义,具体的讲解如下:

exc_type:在这个参数中,type我们都知道是表示类型的意思,所以这个参数表示的是异常类型。

exc_val:当出现异常的时候,会有一个异常值,就是这个参数

exc_tb:异常的错误栈信息

在程序中,如果没有异常情况的出现时,默认情况下这三个参数都是None。

3、异常实例

下面看一个简单的例子,如下:

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

在这段代码中,如果我们要进行异常的特殊处理的时候,就可以在这个方法中使用自定义逻辑,能使用with语句关闭文件的资源,就是因为使用了内置的文件对象,它可以实现上下文管理器的协议,这个文件对象的 __enter__ 方法返回了文件句柄,并且在 __exit__ 中实现了文件资源的关闭,另外,当 with 语法块内有异常发生时,会抛出异常给调用者。

以上就是python上下文管理器如何解决异常?python上下文管理器解决异常的方法,大家在学会后,也可以选择这种方式来处理异常,会省去我们抛出异常的选择,对于简化工作是非常有效的。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行