据我理解,在C++中所有的异常最终都是扩展自exception
类。在Java世界中,无论Exception的类型是什么,捕获Exception e
都可以起作用。那么在C++中如何做到这一点呢?
为什么在这段代码中没有捕获到异常呢?
try{
int z = 34/0;
cout << "This line should not appear" << endl;
} catch (exception e) {
cout << "An error has occurred: " << e.what(); // Not executed
}
此外,在C ++中,如何找出哪些操作会导致什么异常?
std::exception
派生的异常——这仍然不能正常工作。您需要捕获一个引用,以便多态发生: 您的代码捕获了一个被截断为基类exception
的副本。 - user1084944