#include <iostream>
#include <stdexcept>
using namespace std;
int main() {
try {
// 可能抛出异常的代码块
int a = 10;
int b = 0;
if (b == 0) {
throw runtime_error("除数不能为零"); // 抛出异常
}
int result = a / b;
cout << "结果是: " << result << endl;
} catch (const runtime_error& e) {
// 捕获并处理异常
cerr << "捕获到运行时错误: " << e.what() << endl;
} catch (...) {
// 捕获所有未被前面 catch 语句捕获的异常
cerr << "捕获到未知类型的异常" << endl;
}
return 0;
}
try 块:try 块中包含可能会抛出异常的代码。如果在 try 块中发生了异常,则会立即跳转到相应的 catch 块进行处理。
throw 语句:当检测到错误条件时,使用 throw 语句抛出一个异常。这里我们抛出了一个 runtime_error 异常,并传递了一个描述性的字符串。
catch 块:catch 块用于捕获和处理异常。每个 catch 块可以捕获特定类型的异常。在这个例子中,我们首先尝试捕获 runtime_error 类型的异常,并输出错误信息。如果还有其他类型的异常未被捕获,可以通过 catch (...) 捕获所有未处理的异常。
多个 catch 块:可以有多个 catch 块来处理不同类型的异常。程序会按照 catch 块的顺序检查,找到第一个匹配的 catch 块来处理异常。
异常处理的好处:通过使用 try-catch 结构,可以使代码更加健壮,能够更好地处理错误情况,而不会导致程序崩溃。
下一篇:switch c++
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站