c++++ 中的参数异常处理允许检测和处理函数参数中的错误,保证函数接收有效数据。异常类型包括 invalid_argument(无效参数值)、out_of_range(超出有效范围)和 logic_error(逻辑不正确)。通过 throw 语句抛出异常,使用 try-catch 块捕获异常,从而确保函数接收有效输入,避免程序崩溃。
C++ 函数参数异常处理:捕获参数错误
简介
在 C++ 中,函数参数异常处理允许您检测并处理函数参数中的错误。这对于确保您的函数仅接收有效数据非常重要。
立即学习“C++免费学习笔记(深入)”;
异常类型
C++ 标准库提供了几个用于处理参数错误的异常类型:
- invalid_argument: 当函数收到无效参数值时引发。
- out_of_range: 当函数收到超出有效范围的参数值时引发。
- logic_error: 当函数收到逻辑上不正确的参数值时引发。
抛出异常
要抛出参数错误异常,请使用 throw 语句,如下所示:
void my_function(int n) {
if (n < 0) {
throw invalid_argument("n must be non-negative");
}
// ...
}
捕获异常
要捕获参数错误异常,请使用 try-catch 块,如下所示:
int main() {
try {
my_function(-1);
} catch (invalid_argument& e) {
cout << "Invalid argument: " << e.what() << endl;
}
// ...
}
实战案例
让我们考虑一个计算圆周率的函数:
double calculate_pi(int num_terms) {
if (num_terms <= 0) {
throw invalid_argument("num_terms must be positive");
}
// ...
}
在这个例子中,如果函数收到非正数参数,它会抛出一个 invalid_argument 异常。在 main 函数中,我们可以使用 try-catch 块捕获此异常,如下所示:
int main() {
try {
double pi = calculate_pi(-5);
} catch (invalid_argument& e) {
cout << "Invalid argument: " << e.what() << endl;
}
// ...
}