首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++中throw并非一定要在try块中才有效,该怎么处理

2014-01-01 
C++中throw并非一定要在try块中才有效不是说被检测部分必须被放到try块中才起作用么?下面这段程序这说明th

C++中throw并非一定要在try块中才有效
不是说被检测部分必须被放到try块中才起作用么?  下面这段程序



这说明throw发出的信息还是被catch了啊!有点迷惑
[解决办法]
异常传播,会穿透函数,直接传播,函数是不能限制异常传播的。
如果一个函数,调用另一个函数,
被调函数 放在 try块内部调用则catch 块可以捕获,被调函数抛出的异常,

只要被调函数抛出的异常,有对应的catch 块可以接收,并且此前没有被捕获
而对被调函数的调用,是可以到达的。

即:和try块匹配的,任何一个catch块 ,catch 的异常类型和抛出的异常兼容
比如 catch 的异常类型如下
1)被抛出异常类型指针,
2)被抛出类型引用,
2)被抛出类型对象,
4)被抛出异常基类,
即可捕获异常。

热点排行