C++异常, 一个测试异常传递切割问题的程序

原创 2011年01月21日 23:37:00

异常传递过程异常累的切割问题,

// Test20110115.cpp : 定义控制台应用程序的入口点。
// 异常传递机制 案例调研

#include "stdafx.h"
#include<iostream>
#include<string>
#include<Windows.h>
#include<stdlib.h>
#include<math.h>


using namespace std;

class  myException
{
public:
 myException():excName("default baseExction")
 {
  cout<<"default myException construct"<<endl;
 }
 myException(string name)
 {
  excName = name;
  cout<<"myException construct"<<endl;

    
 }
 virtual string getName()
 {
  return excName;
 }

private: string excName;
};

class deriverExcetion:public myException
{
public:
 deriverExcetion():dexcName("defualt deriverExcetion")
 {
  cout<<"default deriverExcetion construct"<<endl;
 }
 deriverExcetion(string name)
 {
  dexcName =name;
  cout<<"deriverExcetion construct"<<endl;
 }
 string getName()
 {
  return dexcName;
 }

private: string dexcName;

};
int main(int argc, _TCHAR* argv[])
{
 cout<<"hello word"<<endl;
 string excMessage;
 deriverExcetion mydexc("deriverExcetion   constructed");
 ///cout<<" mydexc.getName() 地址:"<<(int)(&mydexc.getName())<<endl;
 try
 {
  throw &mydexc;
 }
 catch(myException *exc)
 {
  excMessage =exc->getName();
  cout<<"excMessage: "<<excMessage<<endl;
  //throw *exc;
 }
 try
 {
  throw mydexc;
 }
 catch(deriverExcetion exc)
 {
  excMessage =((myException)exc).getName();
  cout<<"excMessage: "<<excMessage<<endl;
  //throw ((myException)exc);
 }
 //catch(myException exc)
 //{
 // excMessage =exc.getName();
 // cout<<"excMessage: "<<excMessage<<endl;
 // //throw *exc;
 //}
 cin.get();
 return 0;
}

 

相关文章推荐

一个专门处理c++异常的类和例子

  • 2004年07月27日 00:00
  • 90KB
  • 下载

More Effective C++----(12)理解"抛出一个异常"与"传递一个参数"或"调用一个虚函数"间的差异

Item M12:理解"抛出一个异常"与"传递一个参数"或"调用一个虚函数"间的差异 从语法上看,在函数里声明参数与在catch子句中声明参数几乎没有什么差别: class Widget {...

异常测试程序

  • 2006年02月23日 09:05
  • 5KB
  • 下载

More Effective C++之Item M12:理解“抛出一个异常”与“传递一个参数”或“调用一个虚函数”间的差异

从语法上看,在函数里声明参数与在catch子句中声明参数几乎没有什么差别: class Widget { ... }; //一个类,具体是什么类 // 在这里并不重要 void f1(Widge...

Android Studio HelloWord 测试程序在Android5.1真机上运行异常分析

安装完成Android Studio以后,想跑一下HelloWord的测试程序,发现在模拟器上跑起来正常,但在真机上运行起来有问题,API选择的是22,Android5.1。 报错如下: 05-0...
  • bukker
  • bukker
  • 2016年05月04日 10:10
  • 1591

未能加载文件或程序集“AspNetPager”或它的某一个依赖项。参数错误。 (异常来自 HRESULT:0x80070057 (E_INVALIDARG))

刚才,本来在写代码,无聊直接,打开QQ音乐,打算放点music,结果电脑卡死了,直接黑屏重启了。当我重启完电脑,重新打开VS时,悲剧的发现程序出错。奇怪的是,生成项目确实通过的。报错信息 "未能加载...
  • lp0219
  • lp0219
  • 2014年11月22日 21:54
  • 699

通达OA 一个数据循环输出程序异常调试的案例(图文)

今天,通达OA二次开发交流群里有一个朋友问这样一个问题,通过代码连接数据库后,可以正常显示数据库中的数据,但是循环输出的代码只能输出单行数据,数据表里实际有多条数据,是什么原因导致循环失败的呢?inc...
  • upi2u
  • upi2u
  • 2014年12月27日 19:01
  • 1537
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++异常, 一个测试异常传递切割问题的程序
举报原因:
原因补充:

(最多只允许输入30个字)