在C++中,处理异常情况通常使用 try-catch 语句块。当程序可能抛出异常时,将其放在 try 块中。如果 try 块中的代码抛出异常,程序将立即跳转到与该异常类型匹配的 catch 块中。以下是一个简单的示例:
#include <iostream>
#include <stdexcept>
int main() {
try {
// 可能抛出异常的代码
int denominator = 0;
if (denominator == 0) {
throw std::runtime_error("除数不能为0");
}
int result = 10 / denominator;
std::cout << "结果: " << result << std::endl;
} catch (const std::runtime_error& e) {
// 处理 runtime_error 异常
std::cerr << "捕获到异常: " << e.what() << std::endl;
} catch (const std::exception& e) {
// 处理其他标准异常
std::cerr << "捕获到异常: " << e.what() << std::endl;
} catch (...) {
// 处理未知异常
std::cerr << "捕获到未知异常" << std::endl;
}
return 0;
}
在这个示例中,我们尝试执行除法操作,如果除数为0,我们抛出一个 runtime_error 异常。然后,我们使用 catch 块来捕获和处理这个异常。注意,catch 块应该按照从最具体到最一般的顺序排列,以便更有效地处理异常。