您的位置:首页 > 其它

异常处理8_5

2015-06-01 16:54 127 查看
#include <iostream>
#include <string>
using namespace std;

void MyFunc(void);
class CMyException//定义异常类
{
public:
CMyException(){};
~CMyException(){};
const char *ShowExceptionReason()const
{
return "CMyException Exception.";//返回的值是静态字符串所以用const char *
}
};
class CDemo//定义一个工作类用于显示其执行与异常抛出的顺序
{
public:
CDemo();
~CDemo();
};
CDemo::CDemo()
{
cout<<"Constructing CDemo."<<endl;
}
CDemo::~CDemo()
{
cout<<"Destructing CDemo."<<endl;
}
//异常也可以有多层封装,例如:在MyFunc()中封装throw,try,catch机制
//在这里捕获相关异常,然后再其调用层再捕获本层不能捕获的异常
//本实例程序,只在main()中进行了异常捕获处理
void MyFunc()
{
CDemo D;
//	CMyException
cout<<"\nIn MyFunc().Throwing CMyException exception."<<endl;
throw CMyException();//抛出异常
}
void main()
{
//用try封装可能会出现异常的代码
try
{
cout<<"In try block,calling MyFunc()."<<endl;
MyFunc();
}
catch(CMyException E)
{
cout<<"Caught: ";
cout<<E.ShowExceptionReason()<<endl;
}
catch(string str)
{
cout<<"Caught some other exception."<<str<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: