一、异常的概念
异常处理是 C++ 中一种强大的错误处理机制。当程序运行过程中遇到无法立即恢复的错误时,它允许我们中断当前的正常流程,跳转到特定的处理代码块中进行修复或记录,而不是直接让程序崩溃。
核心操作包括:
- 抛出异常:使用
throw关键字抛出一个异常对象(可以是内建类型,也可以是自定义类实例)。 - 捕获异常:使用
try-catch语句包裹可能出错的代码,并在catch块中处理匹配类型的异常。
二、异常的抛出和捕获
当程序出现问题时,我们通过 throw 抛出一个对象来引发异常。该对象的类型以及当前的调用链决定了应该由哪个 catch 的处理代码来接管。
#include <iostream>
#include <string>
using namespace std;
// 一个简单的除法函数,除零时抛出异常
double divide(int a, int b) {
if (b == 0) {
string s("Divide by zero condition!");
throw s; // 抛出字符串异常
}
return ((double)a / (double)b);
}
void func() {
int len, time;
cin >> len >> time;
cout << divide(len, time) << endl;
}
int main() {
while (1) {
try {
func();
} catch ( string& errmsg) {
cout << errmsg << endl;
}
}
;
}


