请参阅以下代码的预期流程
在这种情况下,基类异常由于其多态性而正在捕获这种预期行为.
#include
#include
using namespace std;
void main() {
try {
//throw CustomException();
throw bad_alloc();
}
///due to poly morphism base class reference will
catch(exception &ex) {
cout<
}
catch(bad_alloc &ex) {
cout<
}
}
产量
06001
但是如果我正在创建一个自定义异常,如下面的代码所示,派生类正在捕获异常,即使基类catch首先出现在catch块中:
class CustomException : exception {
public :
CustomException() { }
const char * what() const throw() {
// throw new exception();
return "Derived Class Exception !";
}
};
void main() {
try {
throw CustomException();
//throw bad_alloc();
}
///due to poly morphism base class reffrence will
catch(exception &ex) {
cout<
}
catch(CustomException &ex) {
cout<
}
}
预期产量:
06003
实际产量:
06004