class
<stdexcept>
std::invalid_argument
Invalid argument exception
This class defines the type of objects thrown as exceptions to report an invalid argument.
It is a standard exception that can be thrown by programs. Some components of the standard library also throw exceptions of this type to signal invalid arguments.
It is defined as:
1 2 3 4
|
class invalid_argument : public logic_error {
public:
explicit invalid_argument (const string& what_arg);
};
|
1 2 3 4 5
|
class invalid_argument : public logic_error {
public:
explicit invalid_argument (const string& what_arg);
explicit invalid_argument (const char* what_arg);
};
|
Members
- constructor
- The string passed as what_arg has the same content as the value returned by member what.
The class inherits the what member function from logic_error.
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
// invalid_argument example
#include <iostream> // std::cerr
#include <stdexcept> // std::invalid_argument
#include <bitset> // std::bitset
#include <string> // std::string
int main (void) {
try {
// bitset constructor throws an invalid_argument if initialized
// with a string containing characters other than 0 and 1
std::bitset<5> mybitset (std::string("01234"));
}
catch (const std::invalid_argument& ia) {
std::cerr << "Invalid argument: " << ia.what() << '\n';
}
return 0;
}
|
Possible output:
Invalid argument: bitset::_M_copy_from_string
|
Exception safety
Strong guarantee: if the constructor throws an exception, there are no side effects.