首页IT科技flask 上下文(python上下文管理器如何解决异常?)

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

时间2025-07-31 19:37:46分类IT科技浏览6526
导读:本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。...

本文教程操作环境: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 语法块内有异常发生时                      ,会抛出异常给调用者          。

classFile: def__enter__(self): returnfile_obj def__exit__(self,exc_type,exc_value,exc_tb): #with退出时释放文件资源 file_obj.close() #如果with内有异常发生抛出异常 ifexc_typeisnotNone: raiseexception

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
python中内置库放到哪个文件夹下(python模块有哪些内置属性?) pyqt5漂亮的表格界面(python中pyqt5重写事件)