抓住

catch 关键字引入了一个异常处理程序,即当抛出兼容类型的异常时将向其传输控制的块。catch 关键字之后是带括号的异常声明,其形式类似于函数参数声明:参数名称可以省略,省略号 ... 是允许的,它匹配任何类型。异常处理程序仅在其声明与异常类型兼容时才处理异常。有关详细信息,请参阅捕获异常

try {
    std::vector<int> v(N);
    // do something
} catch (const std::bad_alloc&) {
    std::cout << "failed to allocate memory for vector!" << std::endl;
} catch (const std::runtime_error& e) {
    std::cout << "runtime error: " << e.what() << std::endl;
} catch (...) {
    std::cout << "unexpected exception!" << std::endl;
    throw;
}