在C++中,异常处理是通过关键字try
、catch
和throw
实现的。在Linux环境下,C++异常处理的方式与其他操作系统相同。下面是一个简单的示例:
#include <iostream>
#include <stdexcept>
int main() {
try {
// 抛出异常
throw std::runtime_error("An error occurred");
} catch (const std::runtime_error& e) {
// 捕获异常并处理
std::cerr << "Caught exception: " << e.what() << std::endl;
} catch (...) {
// 捕获所有其他类型的异常
std::cerr << "Caught an unknown exception" << std::endl;
}
return 0;
}
在这个例子中,我们使用try
关键字来包裹可能抛出异常的代码。如果try
块中的代码抛出了异常,程序会立即跳转到与该异常类型匹配的catch
块。在这个例子中,我们捕获了std::runtime_error
类型的异常,并打印出错误信息。如果没有找到匹配的catch
块,程序将调用最后一个catch (...)
块来捕获所有其他类型的异常。
在Linux环境下编译C++程序时,需要使用g++
编译器,并添加-std=c++11
(或更高版本)选项以启用C++11特性,如noexcept
关键字。例如:
g++ -std=c++11 -o my_program my_program.cpp
然后,在Linux终端中运行生成的可执行文件:
./my_program
如果程序抛出异常,它将被相应的catch
块捕获并处理。