📅  最后修改于: 2023-12-03 14:40:15.027000             🧑  作者: Mango
在 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
类型的异常。这与特定类型的异常有关的异常处理程序是相同的。如果我们没有捕获特定类型的异常,则默认捕获任何类型的异常。