异常处理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; } }
相关文章推荐
- 查看那个broadcast发的intent
- RMQ-ST模板
- Linux安装Node.js(源码编译安装)
- 网站接入银联网上支付(B2B)
- 【转】 Ubuntu下配置USB转串口及串口工具配置--不错
- Android最新支持包Design简介
- oracle获取本月第一天和最后一天及Oracle trunc()函数的用法
- 大数据概述
- log4j使用DailyRollingFileAppender
- yum安装软件提示没有可用的baseurl;
- 获取未安装apk文件信息
- 第13周多态性与虚函数程序阅读
- 第十三周 项目三--立体类族共有的抽象类
- 文章标题
- jquery select 上移下移
- java简单的接口程序
- fwrite函数
- 换WAV格式
- rabbitmq相关
- Sharepoint Workflow 获取中文栏的问题