如果特定类型的异常抛出在c ++中没有对应于该异常的catch块,会发生什么

时间:2017-04-01 13:24:17

标签: exception-handling

对于下面给出的代码。代码将如何表现以及为什么?

    // code goes here..
    try { 
         if(a==0) throw "a is 0";
    }
    catch(int a) { ; }
    a = 19;
    //code goes here.....

1 个答案:

答案 0 :(得分:0)

由于您正在抛出一个字符串(又名const char*),但您只捕获类型为int的值,因此异常将不会被捕获并将继续展开函数堆栈,直到它找到一个尝试-block愿意捕获您的异常或它到达main并中止您的程序。

也就是说,如果你的catch块没有捕获抛出的异常类型,那就好像它不存在一样。