本文教程操作环境:
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中if else如何判断表达式?12/26
- ♥ python imshow报错如何解决12/04
- ♥ 如何在python中删除引号08/31
- ♥ 如何在python3中创建一个新项目11/10
- ♥ python chardet检测编码12/26
- ♥ 如何使用 python np.max10/17
内容反馈