class
<stdexcept>

std::invalid_argument

class 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.

See also