C++异常处理通过try、catch、throw实现;2. try块包裹可能出错代码,如年龄为负时抛出异常;3. throw抛出异常后由匹配的catch块捕获处理,避免程序崩溃,提升健壮性。

在C++中,异常处理机制通过 try、catch 和 throw 三个关键字实现,用于在程序运行时检测和响应错误情况,避免程序崩溃并提高健壮性。
try 块:包裹可能出错的代码
使用 try 块将可能抛出异常的代码包围起来。一旦其中某条语句引发异常,程序会立即跳转到与之匹配的 catch 块进行处理。
示例:try {
int age = -5;
if (age < 0) {
throw "年龄不能为负数";
}
}
throw 表达式:主动抛出异常
当检测到错误时,使用 throw 抛出一个异常对象或值。这个值可以是基本类型(如 int、const char*),也可以是自定义异常类对象。
常见用法:throw 1;
—— 抛出整数throw "错误信息";
—— 抛出字符串throw std::invalid_argument("参数错误");—— 抛出标准异常对象
catch 块:捕获并处理异常
catch 块紧跟在 try 块之后,用于接收和处理被抛出的异常。可以根据异常类型编写多个 catch 块,实现针对性处理。
立即学习“C++免费学习笔记(深入)”;
系统简介:冰兔BToo网店系统采用高端技术架构,具备超强负载能力,极速数据处理能力、高效灵活、安全稳定;模板设计制作简单、灵活、多元;系统功能十分全面,商品、会员、订单管理功能异常丰富。秒杀、团购、优惠、现金、卡券、打折等促销模式十分全面;更为人性化的商品订单管理,融合了多种控制和独特地管理机制;两大模块无限级别的会员管理系统结合积分机制、实现有效的推广获得更多的盈利!本次更新说明:1. 增加了新
catch (int e) {
cout << "捕获整数异常:" << e << endl;
}
catch (const char* msg) {
cout << "捕获字符串异常:" << msg << endl;
}
catch (...) {
cout << "捕获未知类型异常" << endl; // 捕获所有类型
}
catch 参数可以是值、引用或指针(针对类类型推荐使用引用,避免拷贝和对象切片)。
完整示例
下面是一个综合使用 try、throw、catch 的简单例子:
#includeusing namespace std; int divide(int a, int b) { if (b == 0) { throw "除数不能为零"; } return a / b; }
int main() { try { cout << divide(10, 0) << endl; } catch (const char* msg) { cout << "异常信息:" << msg << endl; } catch (...) { cout << "其他异常" << endl; } return 0; }
这段代码会输出:
异常信息:除数不能为零
基本上就这些。try-catch 结构让程序可以在出错时优雅处理问题,而不是直接终止。合理使用异常能提升代码的可读性和可靠性,但注意不要滥用,常规错误控制还是优先使用返回值等方式。不复杂但容易忽略的是:确保 catch 的参数类型与 throw 的实际类型匹配,否则可能无法正确捕获。









