C++ 异常处理机制:捕获、自定义与实战
核心概念与价值
异常处理是 C++ 中处理程序运行时错误的核心机制,其本质是将'错误检测'与'错误处理'分离。在出错的地方抛出异常,在合适的地方捕获并处理,避免程序直接崩溃。
传统的返回值判断方式存在明显缺陷:返回值可能与合法结果冲突(如 -1 既可能是错误码也可能是计算结果),且需手动检查每个函数返回值,代码冗余且易遗漏。相比之下,异常处理的优势在于错误检测与处理分离,结构清晰;异常可跨函数、跨层级传播,无需逐层传递;还能携带丰富的错误信息。
基本语法与执行流程
C++ 异常处理依赖三个关键字:throw(抛出)、try(尝试)、catch(捕获)。
#include <iostream>
using namespace std;
int divide(int a, int b) {
if (b == 0) {
throw string("错误:除数不能为 0!");
}
return a / b;
}
int main() {
int x = 10, y = 0;
try {
cout << "尝试执行除法运算..." << endl;
int result = divide(x, y);
cout << x << " / " << y << " = " << result << endl;
} catch (const string& err_msg) {
cout << "捕获到异常:" << err_msg << endl;
} catch (...) {
cout << "捕获到未知异常!" << endl;
}
cout << "程序继续执行..." << endl;
return 0;
}
执行流程拆解:
- 程序进入
try块,执行可能出错的代码。


