logic_error Class


For the latest documentation on Visual Studio 2017, see Visual Studio 2017 Documentation.

The class serves as the base class for all exceptions thrown to report errors presumably detectable before the program executes, such as violations of logical preconditions.

class logic_error : public exception {  
    explicit logic_error(const string& message);

    explicit logic_error(const char *message);


The value returned by what is a copy of message.data.

// logic_error.cpp  
// compile with: /EHsc /GR  
#include <iostream>  
using namespace std;  
int main( )  
      throw logic_error( "logic error" );  
   catch ( exception &e )   
      cerr << "Caught: " << e.what( ) << endl;  
      cerr << "Type: " << typeid( e ).name( ) << endl;  


Caught: logic error  
Type: class std::logic_error  

Header: <stdexcept>

Namespace: std

exception Class
Thread Safety in the C++ Standard Library