发布于2026-06-29 阅读(0)
扫一扫,手机访问
写C++程序时,最让人头疼的莫过于运行时突然崩掉——指针越界、内存耗尽、文件打不开,各种意外防不胜防。好在C++本身提供了一套异常处理机制,能帮我们优雅地应对这些状况。核心就靠三个关键字:try、catch 和 throw。
不妨看个简单例子,在Ubuntu上如何用C++捕获并处理异常:

#include
#include
int main() {
try {
// 这里是可能抛出异常的代码
throw std::runtime_error("发生了一个错误");
} catch (const std::runtime_error& e) {
// 这里是捕获并处理异常的代码
std::cerr << "捕获到异常: " << e.what() << std::endl;
}
return 0;
}
代码中先包含了两个头文件: 负责输入输出, 则提供了标准的异常类库(比如这里用到的 std::runtime_error)。接下来,在 try 块里写下可能出问题的代码——这里故意用 throw 抛出一个异常,并附带一条描述信息。一旦 throw 触发,程序会立刻跳转到对应的 catch 块。例子中捕获的是 std::runtime_error 类型的异常,引用变量 e 拿到异常对象后,通过 e.what() 就能取出错误描述,并输出到标准错误流。
编译这段代码也很简单。打开终端,用 g++ 编译器:
g++ -o exception_handling example.cpp
会在当前目录生成一个叫 exception_handling 的可执行文件。运行它:
./exception_handling
你会看到以下输出:
捕获到异常: 发生了一个错误
以上就是Ubuntu上C++异常处理的基本玩法。实际项目中,你完全可以按需选择不同的异常类型,甚至可以在一个 try 块后接多个 catch 块,分别处理不同种类的错误。核心思路就是:把可能出问题的代码包进 try,出问题时 throw 抛出一个异常对象,然后由相应的 catch 来接手处理——这样程序就不会因为一个小错误而整段崩溃,该恢复的恢复,该提示的提示,代码结构也更清晰。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8