博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++重新抛出异常
阅读量:6858 次
发布时间:2019-06-26

本文共 572 字,大约阅读时间需要 1 分钟。

有可能单个catch不能完全处理一个异常,此时在进行了一些处理工作之后,需要将异常重新抛出,由函数调用链中更上层的函数来处理。重新抛出由“throw;”语句实现,throw后不跟表达式或类型。

“throw;”将重新抛出异常对象,它只能出现在catch或catch调用的函数中,如果出现在其它地方,会导致调用terminate函数。

被重新抛出的异常是原来的异常对象,不是catch形参。该异常类型取决于异常对象的动态类型,而不是catch形参的静态类型。比如来自基类类型形参catch的重新抛出,可能实际抛出的是一个派生类对象。

只有当异常说明符是引用时,在catch中对形参的改变,才会传播到重新抛出的异常对象中。

catch (my_error & eObj) {     eObj.status = severeErr;   throw; // the status member of the exception object is severeErr} catch (other_error eObj) {  eObj.status = badErr;  throw;  // the status member of the exception rethrown is unchanged}

【学习资料】 《c++ primer》

转载地址:http://svjyl.baihongyu.com/

你可能感兴趣的文章
大数据流量:数据中心发展的瓶颈
查看>>
网络虚拟化之FlowVisor:网络虚拟层(上)
查看>>
使用 rsync 来备份 Linux 系统
查看>>
五年磨一剑 初志云平台正式服务于用户
查看>>
Python类和元类(metaclass)的理解和简单运用
查看>>
也谈基于NodeJS的全栈式开发
查看>>
《Android应用开发攻略》——1.13 从模拟器/Android设备获得屏幕截图
查看>>
东芝财务造假丑闻发酵 遭投资者索赔1.6亿美元
查看>>
揭秘太空舱舱门快速检漏仪:采用高精度压力传感器检测技术
查看>>
我国光伏产业展现巨大发展前景
查看>>
英国电信和毕马威发布网络安全报告,强调网络安全陷阱问题
查看>>
iPhone 这几个拍照功能,据说 80% 的人都不知道
查看>>
呼叫中心管理成功的几大注意事项
查看>>
Dridex木马如何进行重定向攻击?
查看>>
《新编计算机科学概论》一0.3 计算机与社会
查看>>
“十三五”光伏行业将迎高速增长期 重点推动10方面工程
查看>>
中科院计算所开源Easy Machine Learning系统,用交互式图形界面简化ML开发过程
查看>>
专访陈孝良:智能音箱厂商很难逃脱为巨头打工的命运丨CCF-GAIR 2017
查看>>
如何用云计算模式,实现生物信息分析 | 硬创公开课
查看>>
焦烈焱|数字化经济时代
查看>>