C++ 异常处理是一种机制,用于在运行时检测到的错误和异常情况下从当前代码块转移到更高一级别的代码块处理这些错误和异常。
当 C++ 代码遇到错误或异常时,它会抛出异常。此后,该异常就会被传递给更高级别的代码,并在遇到 catch 块时被捕获。当异常被捕获时,catch 块中的代码将被执行。
例如,以下是一个简单的程序,在读取一个文件时遇到了一个 IO 错误,然后通过异常处理捕获并显示相应的错误消息:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream file;
file.open("myfile.txt");
try {
if (!file) {
throw runtime_error("File not found");
}
} catch (runtime_error& e) {
cout << "Exception caught: " << e.what() << endl;
}
return 0;
}
在这个示例中,程序试图打开名为 myfile.txt 的文件。如果文件不存在,则程序抛出一个 runtime_error 异常,并终止当前代码块的执行。然后,异常被传递到空间更大的 try-catch 块中。其中 catch 块定义了要捕获的异常类型,即 runtime_error。在 catch 块中,程序将该错误消息作为字符串提取并显示给用户。
注意:try-catch 块必须始终成对出现,否则编译器将无法编译代码。
总的来说,C++ 异常处理提供了一种强大的机制来处理程序运行时可能遇到的各种错误和异常情况。