c++ - C++ catch(std::exception&e)与catch(…)

标签 c++ exception exception-handling

我知道这两种捕获方法在处理上的区别,但是椭圆捕获std::exception catch不会捕获到什么东西呢?

例如:

try
{
    throw std::runtime("runtime error!");
}
catch(const std::exception& e)
{
    std::cout << "Exception: " << e;
}
catch(...)
{
    std::cout << "How did I get here?";
    throw;
}

我已经看到了将两者结合使用的代码示例,但没有看到您同时使用这两个代码的原因。

最佳答案

catch(const std::exception& e)

仅捕获标准异常。
catch(...)

之后将捕获所有内容。

您可以处理整数和其他类型(http://www.cplusplus.com/doc/tutorial/exceptions/)

例如:
catch(int e)

关于c++ - C++ catch(std::exception&e)与catch(…),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63355989/

相关文章:

java - 如何在 DOM 解析 XML 时从空元素中提取属性值?

c# - 为什么异常总是被接受为返回类型(抛出时)?

exception-handling - 为什么使用断言而不是异常抛出?

java - 为什么我不能访问 try/catch block 中的变量?

c++ - 重新启动后,线程无法在while循环中再次运行

c++ - 不知道使用 google-test 在哪里抛出异常

python - 如何编写一个 `try`/`except` block 来捕获所有异常?

C++ 在编译时注册类成员 var

C++对象声明困惑?

c++ - Boost::log:基于级别的不同格式(HTML 格式)