注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

告别迷茫

梦想与现实的差距,就是我们生活的意义。因为我们有差距,我们才会一直积累,在努力。

 
 
 

日志

 
 

28-4出现异常 销毁局部变量的顺序  

2014-04-30 22:49:17|  分类: c++的异常的处理 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

#include <iostream>
using namespace std;

struct StructA
{
StructA() {cout << "Constructed a struct A" << endl; }
~StructA() {cout << "Destroyed a struct A" << endl; }
};

struct StructB
{
StructB() {cout << "Constructed a struct B" << endl; }
~StructB() {cout << "Destroyed a struct B" << endl; }
};

void FuncB() // throws
{
cout << "In Func B" << endl;
StructA objA;
StructB objB;
cout << "About to throw up!" << endl;
throw "Throwing for the heck of it";
}

void FuncA()
{
try
{
cout << "In Func A" << endl;
StructA objA;
StructB objB;
FuncB();
cout << "FuncA: returning to caller" << endl;
}
catch(const char* exp)
{
cout << "FuncA: Caught exception, it says: " << exp << endl;
cout << "FuncA: Handled it here, will not throw to caller" << endl;
// throw; // uncomment this line to throw to main()
}
}

int main()
{
cout << "main(): Started execution" << endl;
try
{
FuncA();
}
catch(const char* exp)
{
cout << "main(), Exception: " << exp << endl;
}
cout << "main(): exiting gracefully" << endl;
return 0;
}

28-4出现异常  销毁局部变量的顺序 - 983433479 - 把握改变契机  告别迷茫
 
28-4出现异常  销毁局部变量的顺序 - 983433479 - 把握改变契机  告别迷茫
http://blog.csdn.net/daheiantian/article/details/6530318写的非常的额好
 析构函数   被干掉了  啊  局部的变量的销毁的顺序与我们的创建的顺序相反的  所以析构  over



fundA 调用了fundB   但是main 和fundA  () 都有catch 快  ,fundA认为这个不严重  没有传给main。。。。
  评论这张
 
阅读(1)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017