#include <iostream>
#include <stdexcept>
using namespace std;
// 定义一个函数,可能会抛出异常
void mayThrow(bool throwException) {
if (throwException) {
// 抛出一个异常
throw runtime_error("An error occurred!");
} else {
cout << "No exception was thrown." << endl;
}
}
int main() {
try {
// 调用可能抛出异常的函数
mayThrow(true); // 将参数设为true以触发异常
} catch (const runtime_error& e) {
// 捕获并处理runtime_error类型的异常
cout << "Caught an exception: " << e.what() << endl;
} catch (...) {
// 捕获所有其他类型的异常
cout << "Caught some other exception." << endl;
}
// 再次调用但不抛出异常
try {
mayThrow(false); // 将参数设为false以避免抛出异常
} catch (const runtime_error& e) {
cout << "Caught an exception: " << e.what() << endl;
} catch (...) {
cout << "Caught some other exception." << endl;
}
return 0;
}
try 块包含可能会抛出异常的代码。如果在 try 块中发生异常,则会立即跳转到相应的 catch 块进行处理。catch 块用于捕获和处理异常。可以有多个 catch 块来处理不同类型的异常。每个 catch 块后面跟着一个异常类型,只有当抛出的异常与该类型匹配时,才会执行对应的 catch 块。catch (...) 可以捕获任何类型的异常,通常放在最后作为兜底处理。throw 关键字可以显式地抛出异常。这里我们使用了 std::runtime_error 类来创建一个异常对象。通过这种方式,程序可以在运行时处理各种异常情况,从而提高代码的健壮性和可维护性。
上一篇:c++宏
下一篇:assert c++
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站