对于下面给出的代码。代码将如何表现以及为什么?
// code goes here..
try {
if(a==0) throw "a is 0";
}
catch(int a) { ; }
a = 19;
//code goes here.....
答案 0 :(得分:0)
由于您正在抛出一个字符串(又名const char*
),但您只捕获类型为int
的值,因此异常将不会被捕获并将继续展开函数堆栈,直到它找到一个尝试-block愿意捕获您的异常或它到达main
并中止您的程序。
也就是说,如果你的catch块没有捕获抛出的异常类型,那就好像它不存在一样。