异常处理是一种处理函数错误的机制,使用 try-catch 语法捕获:try 块包含可能引发异常的代码。catch 块捕获特定类型的异常,使用 exception_type &e 访问异常对象。catch (...) 捕获任何类型的异常。例如,在将字符串转换为整数时,无效的参数会引发 invalid_argument 异常,超出范围会引发 out_of_range 异常。
C++ 函数异常处理
异常处理是一种处理函数内发生错误或异常情况的技术。它使您能够优雅地处理错误,而不使整个程序崩溃。
语法
异常处理使用以下语法:
try {
// 执行可能引发异常的代码
} catch (exception_type &e) {
// 捕获特定类型的异常
} catch (...) {
// 捕获任何类型的异常
}
try
块包含可能引发异常的代码。catch
块用于捕获特定类型的异常。它使用参数exception_type &e
来访问异常对象。- 如果您希望捕获任何类型的异常,可以使用
catch (...)
。
实战案例
让我们看一个使用异常处理的实际示例:
#include <iostream>
#include <string>
using namespace std;
int main() {
try {
// 将字符串转换为整数
int num = stoi("abc");
} catch (invalid_argument &e) {
// 处理无效参数异常
cout << "Invalid integer: " << e.what() << endl;
} catch (out_of_range &e) {
// 处理超出范围异常
cout << "Out of range: " << e.what() << endl;
} catch (...) {
// 处理任何其他异常
cout << "Unknown error occurred." << endl;
}
return 0;
}
在这种情况下,我们尝试将 "abc"
转换为整数。如果字符串不包含有效的整数,它将引发 invalid_argument
异常。或者,如果值超出 int
范围,则会引发 out_of_range
异常。我们使用异常处理来捕获这些异常并优雅地处理它们。