代码之家  ›  专栏  ›  技术社区  ›  Galaxy

如何捕获任何c++标准异常?

  •  -6
  • Galaxy  · 技术社区  · 6 年前

    我知道C++中可以使用任何数据类型来捕获异常:

    try {
      // throw exception here
    } catch (...) {
      // handle exception here
    }
    

    但是我想捕捉任何C++标准异常,比如 std::logic_error , std::out_of_range ,而不是其他数据类型,例如 string int exp.what() 通过C++标准异常对象,使用上述代码是不可能的。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Remy Lebeau    6 年前

    所有标准例外情况都源自 std::exception ,因此请注意:

    try {
        // throw exception here
    }
    catch (const std::exception &e) {
        // handle exception here
    }