`
chenqi210
  • 浏览: 76965 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

C++ 接异常时的注意

    博客分类:
  • c++
C++ 
阅读更多

 

void test1()
{
	try
	{
		try
		{
			throw runtime_error("asdfasdf");
		}
		catch(std::exception &e)
		{
			throw e;
		}
	}
	catch(std::runtime_error &e)
	{	
		throw e;
	}
	catch(std::exception &e)
	{
		cout<<e.what()<<endl;
	}
}

 

这段代码都有输出:

 在vc2010里输出 仍然是 asdfasdf

但是mingw4.5.2里输出则是std::exception

 

当runtime_error 被扔出来的时候,exception& e接住了,但是 e再抛出的时候,因为已经是exception的异常了,所以只能被第三个catch接住. 

分享到:
评论

相关推荐

    linux下C++动态链接C++库示例

    注意其中使用函数返回基类指针的用法,因为Linux的动态链接库不能像MFC中那样直接导出类 一、介绍 如何使用dlopen API动态地加载C++函数和类,是Unix C++程序员经常碰到的问题。 事实上,情况偶尔有些复杂,需要...

    基于 ado 封装的 C++11 类(附演示代码)

    基于 C++11 封装的 ado 数据库操作类。 特点: 1.异常安全。异常处理类封装并扩展了 _com_error 的功能。 2.采用函数模板。利用函数模板实现了各类型数据存储。...代码使用无限制,但是在使用时请保留作者信息。

    新手学习C++入门资料

    C++中的try/catch/throw异常处理机制取代了标准C中的setjmp()和longjmp()函数。 二、关键字和变量 C++相对与C增加了一些关键字,如下: typename bool dynamic_cast mutable namespace static_cast using ...

    C++编程惯用法+高级程序员常用方法和技巧!

    异常是C++中另外一个新增的特性,对于何时该使用它,何时不该使用它,Murray也向我们给出了他的建议。在本书的最后,我们还可以学到如何将一个项目从C移植到C++之上,书中对该过程的讨论不但包括了其中可能出现的...

    C++入门到精通

    C++支持异常处理设施 异常表示的是一个没有预料到的程序行为 比如所有可用的程 序内存耗尽 出现异常情况的程序部分会抛出一个异常——即程序的其他部分都可以访问到 程序中的某个函数必须捕获这个异常并做一些...

    C++编程惯用法-高级程序员常用的技巧和方法

    异常是C++中另外一个新增的特性,对于何时该使用它,何时不该使用它,Murray也向我们给出了他的建议-在本书的最后,我们还可以学到如何将一个项目从C移植到C++之上,书中对该过程的讨论不但包括了其中可能出现的技术...

    C++MFC教程

    MFC借助C++的优势为Windows开发开辟了一片新天地,同时也借助ApplicationWizzard使开发者摆脱离了那些每次都必写基本代码,借助ClassWizard和消息映射使开发者摆脱了定义消息处理时那种混乱和冗长的代码段。...

    开学了,有路网团购太便宜啦! C++编程惯用法(高级程序员常用方法和技巧)/深入C++系列(C++ Strategies and Tactics)

    本书在一开始就向我们讲解了如何为我们的设计选择正确的抽象,提示我们注意抽象和现实之间的区别。然后,我们就将学到如何将已得到的抽象转化成一个(或多个)C++中的类,期间进行的讨论所涵盖的范围上至高层的设计...

    零起点学通C++多媒体范例教学代码

    9.4 引用应注意的问题 9.4.1 引用容易犯的错误 9.4.2 引用一个按值返回的堆中对象 9.4 -3引用一个按别名返回的堆中对象 9.4.4 在哪里创建,就在哪里释放 9.5 总结 第10章 深入函数 10.1 函数重载 10.1.1 普通函数的...

    零起点学通C++学习_多媒体范例教学代码

    9.4 引用应注意的问题 9.4.1 引用容易犯的错误 9.4.2 引用一个按值返回的堆中对象 9.4 -3引用一个按别名返回的堆中对象 9.4.4 在哪里创建,就在哪里释放 9.5 总结 第10章 深入函数 10.1 函数重载 10.1.1 ...

    【09-异常处理】

    •异常处理已经成为衡量一门语言是否成熟的标准之一,目前的主流编程语言如C++、C#、Ruby、 Python等,大都提供了异常处理机制。增加了异常处理机制后的程序有更好的容错性,更加健壮。 传统错误处理的缺陷 ...

    C++编程惯用法.高级程序员常用方法和技巧

    异常是C++中另外一个新增的特性,对于何时该使用它,何时不该使用它,Murray也向我们给出了他的建议。在本书的最后,我们还可以学到如何将一个项目从C移植到C++之上,书中对该过程的讨论不但包括了其中可能出现的...

    C++编程惯用法——高级程序员常用方法和技巧

    异常是C++中另外一个新增的特性,对于何时该使用它,何时不该使用它,Murray也向我们给出了他的建议。在本书的最后,我们还可以学到如何将一个项目从C移植到C++之上,书中对该过程的讨论不但包括了其中可能出现的...

    C++教程网《Linux网络编程》视频百度云地址

    UNIX域套接字编程注意点 22socket编程(十七) socketpair sendmsg/recvmsg UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信...

    2018年C++教程网的linux网络编程视频共41集百度云下载链接.rar

    UNIX域套接字编程注意点 22socket编程(十七) socketpair sendmsg/recvmsg UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信发展 ...

    DirectX修复工具V4.0标准版

    修复c++的功能仅限于增强版,标准版及在线修复版在系统c++异常时(非丢失时)会提示用户使用增强版进行修复。除常规修复外,新版程序还支持C++强力修复功能。当常规修复无效时,可以到本程序的选项界面内开启强力...

    Visual C++ 2010入门经典(第5版)--源代码及课后练习答案

    《visual c++ 2010入门经典(第5版)》针对visual c++ 2010版本进行了全面更新,介绍了最新的开发环境和如何使用visual c++构建现实世界中的应用程序。拥有本书,您就迈向了通往使用两种c++版本编写应用程序的成功之路...

    [免费]2018年C++教程网的linux网络编程视频百度云下载链接.rar

    UNIX域套接字编程注意点 22socket编程(十七) socketpair sendmsg/recvmsg UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信...

    Visual C++ 2005入门经典--源代码及课后练习答案

     本书系编程语言先驱者Ivor Horton的经典之作,是学习C++编程最畅销的图书品种之一,不仅涵盖了Visual C++ .NET编程知识,还全面介绍了标准C++语言和.NET C++/CLI。本书延续了Ivor Horton讲解编程语言的独特方法,...

Global site tag (gtag.js) - Google Analytics