在 C++ 中,Java 的 IllegalArgumentException 的等价物是 std::invalid_argument
异常。
std::invalid_argument
是 C++ 标准库中的异常类,用于表示传递给函数的参数不合法。它是 std::exception
类的一个子类,因此可以在 C++ 代码中抛出并捕获该异常。
例如,在 C++ 中,可以使用以下代码抛出 std::invalid_argument
异常:
#include<iostream>
#include <stdexcept>
int foo(int x) {
if (x < 0) {
throw std::invalid_argument("x must be non-negative");
}
return x * 2;
}
int main() {
try {
int x = -1;
int y = foo(x);
std::cout << "Result: " << y << std::endl;
} catch (const std::invalid_argument& e) {
std::cerr << "Error: " << e.what()<< std::endl;
}
return 0;
}
在这个例子中,如果参数 x
小于零,则会抛出 std::invalid_argument
异常,并在 main
函数中捕获该异常。
需要注意的是,std::invalid_argument
异常通常用于表示参数不合法的情况,而不是其他类型的错误,例如内存不足或文件不存在等。因此,在使用 std::invalid_argument
异常时,需要确保它确实表示了参数不合法的情况。
领取专属 10元无门槛券
手把手带您无忧上云