| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 462 人关注过本帖
标题:set_unexpected的问题
只看楼主 加入收藏
lyj23
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:140
注 册:2010-10-31
结帖率:86.21%
收藏
已结贴  问题点数:20 回复次数:2 
set_unexpected的问题
程序代码:
#include<exception>
#include<iostream>
#include<cstdio>
using namespace std;
//Exception classes
class A{};
class B{};

//terminate() handler
void my_thandler(){
     cout<<"terminate called"<<endl;
     exit(0);}
//unexpected() handlers
void my_unhandler1(){throw A();}
void my_unhandler2(){throw;}
//-------------------------------------------------------------------------
void t(){throw B();}
void f()throw(A){t();}
void g()throw(A,bad_exception){t();}
//main()
int main()
{

 set_terminate(my_thandler);

 set_unexpected(my_uhandler1);//这里报错
 try{
     f();
     }catch(A&){
     cout<<"caught an A from f"<<endl;}

 set_unexpected(my_uhandler2);//这里报错
 try{
     g();
     }catch(bad_exception&){
     cout<<"caught a bad_exception from g"<<endl;}
     try{
         f();
         }catch(...){
         cout<<"This will never print"<<endl;
         }
}//:~
这个程序的执行流程到底是什么?my_uhandler1这个到底什么时候被用啊!
书上实在写的太少了,高手讲解一下

[ 本帖最后由 lyj23 于 2011-5-22 07:15 编辑 ]
2011-05-22 07:13
lyj23
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:140
注 册:2010-10-31
收藏
得分:0 
高手COME ON啊,难道没有人会
2011-05-22 17:22
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9026
专家分:54030
注 册:2011-1-18
收藏
得分:14 
如果这个问题你自己不能搞定的话,还是别搞了
2011-05-23 08:36
快速回复:set_unexpected的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020395 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved