异常处理
学习C++异常处理机制和RAII技术
75%
异常基础
异常安全
异常层次
练习例题
练习例题
异常处理基础
try-catch 语句
使用 try-catch 块捕获和处理异常。
#include <iostream>
#include <stdexcept>
using namespace std;
double divide(double a, double b) {
if (b == 0) {
throw runtime_error("除数不能为零!");
}
return a / b;
}
int main() {
try {
cout << divide(10, 2) << endl; // 正常执行
cout << divide(10, 0) << endl; // 抛出异常
}
catch (const runtime_error& e) {
cerr << "捕获到运行时错误: " << e.what() << endl;
}
catch (const exception& e) {
cerr << "捕获到标准异常: " << e.what() << endl;
}
catch (...) {
cerr << "捕获到未知异常" << endl;
}
cout << "程序继续执行..." << endl;
return 0;
}
- 将错误处理代码与正常业务逻辑分离
- 可以在调用栈中传播异常
- 支持不同类型的异常处理
- 确保资源正确释放