📜  cpp 获取异常类型 (1)

📅  最后修改于: 2023-12-03 14:40:15.027000             🧑  作者: Mango

C++ 获取异常类型

在 C++ 中,异常是一种在程序运行期间出现的非正常情况。当出现异常时,程序会跳转到异常处理程序中。

要捕获异常并确定其类型,可以使用 try...catch 代码块。

语法
try {
  // 代码块
}
catch (ExceptionType e) {
  // 异常处理程序
}

try 代码块中,我们尝试执行一些可能会抛出异常的代码。

如果出现异常,则跳转到 catch 代码块中,其中 ExceptionType 是您想要捕获的异常类型。

如果您希望捕获任何类型的异常,可以使用 catch (...)

示例

以下示例演示了如何捕获和处理一些常见的异常类型。

#include <iostream>
#include <exception>
using namespace std;

int main() {
  try {
    // 抛出 std::runtime_error 异常
    throw runtime_error("Exception occurred!");

    // 后面的代码不会继续执行
    cout << "After the exception occurred." << endl;
  }

  catch (const runtime_error &e) {
    cout << "Caught a runtime_error exception: " << e.what() << endl;
  }

  catch (const exception &e) {
    cout << "Caught an exception of an unexpected type: " << e.what() << endl;
  }

  catch (...) {
    cout << "Caught an unknown exception." << endl;
  }

  return 0;
}

输出:

Caught a runtime_error exception: Exception occurred!

在上面的示例中,我们首先抛出 std::runtime_error 异常。由于 runtime_error 是一个异常类型,我们在 try...catch 代码块中捕获它并处理它。

我们还捕获了泛型 std::exception 类型的异常。这与特定类型的异常有关的异常处理程序是相同的。如果我们没有捕获特定类型的异常,则默认捕获任何类型的异常。