什么情况下会用到scope guard?

aj3423 2011-12-19 04:30:31
scope guard 源于c++里的一种清理机制,比如一套程序流程
bool do_somethine() {
a = malloc();//申请资源a
if(!a) {
return false;
}
b = malloc();//申请资源b
if(!b) { //申请失败,比如内存用完
free(a); //要记得释放a
return false;
}
c = malloc();
if(!c) {
free(a);//如果c申请失败,要同时释放a和b
free(b);
return false;
}
//如果还有 d,e,f,代码量越来越大
return true;
};

c++用一种叫ScopeGuard专门用来处理这种情况。
还比如安装文件时候,安装第一个包,第二个包,在安装第三个包时候出错,需要回滚操作,把前两个包删掉
n多情况类似这样需要回滚操作
作为开发js的,自然会拿js来比较一下,不过好像还真想不起来哪里碰到过这种情况,有人碰到过这种情况吗
...全文
90 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧