C++多重异常捕获

C++允许多重异常捕获。由于在实际情况中,我们遇到的异常可能是多种多样的,并不只是某一种。所以C++可以在try-catch语句块中多重异常捕获。语法如下:

try{
    //Execute some code
} catch (Exception& e1) {
    cout << "Exception 1" << endl;
} catch (Exception& e2) {
    cout << "Exception 2" << endl;
} catch (...) {
  cout <<
"All other exceptions" <<endl;
}

最后的catch(...)将省略号...作为catch的参数,使得该catch块可以捕获所有的异常。所以一般放在最后,作为默认异常处理程序。

需要注意的一点是,派生类要放在基类的前面。也就是说Exception1或者是Exception2的子类,或者和Exception2没有关系。如果将Exception2放在前面,那么Exception1将不会被捕捉到,即捕捉Exception1没有意义。

原文地址:https://www.cnblogs.com/bwjblogs/p/12826678.html