C++中throw并非一定要在try块中才有效,该怎么处理
C++中throw并非一定要在try块中才有效不是说被检测部分必须被放到try块中才起作用么?下面这段程序这说明th
C++中throw并非一定要在try块中才有效
不是说被检测部分必须被放到try块中才起作用么? 下面这段程序
这说明throw发出的信息还是被catch了啊!有点迷惑
[解决办法]异常传播,会穿透函数,直接传播,函数是不能限制异常传播的。
如果一个函数,调用另一个函数,
被调函数 放在 try块内部调用,
则catch 块可以捕获,被调函数抛出的异常,只要被调函数抛出的异常,有对应的catch 块可以接收,并且此前没有被捕获
而对被调函数的调用,是可以到达的。即:和try块匹配的,任何一个catch块 ,catch 的异常类型和抛出的异常兼容
比如 catch 的异常类型如下
1)被抛出异常类型指针,
2)被抛出类型引用,
2)被抛出类型对象,
4)被抛出异常基类,
即可捕获异常。