我有这个测试代码来处理构造函数中的异常。函数 f() 创建一个除以零的异常,但未捕获此异常。相反,如果我抛出一个自定义整数,则会捕获异常。
#include <iostream>
using namespace std;
class A
{
public:
void f(){
int x;
x=1/0;
//throw 10;
}
A(){
try{
f();
}
catch(int e){
cout << "Exception caught\n";
}
}
};
int main (int argc, const char * argv[])
{
A a;
return 0;
}
为什么我可以接住自定义投掷 10;而不是 x=1/0;