
Standard Exception
Classes supporting logic and runtime errors.
#include <exception>
class exception;
The class exception defines the base class for the types of objects thrown as exceptions by Standard C++ Library components, and certain expressions, to report errors detected during program execution. User's can also use these exceptions to report errors in their own programs.
class exception {
public:
exception () throw();
exception (const exception&) throw();
exception& operator= (const exception&) throw();
virtual ~exception () throw();
virtual const char* what () const throw();
};
class logic_error : public exception {
public:
logic_error (const string& what_arg);
};
class domain_error : public logic_error {
public:
domain_error (const string& what_arg);
};
class invalid_argument : public logic_error {
public:
invalid_argument (const string& what_arg);
};
class length_error : public logic_error {
public:
length_error (const string& what_arg);
};
class out_of_range : public logic_error {
public:
out_of_range (const string& what_arg);
};
class runtime_error : public exception {
public:
runtime_error (const string& what_arg);
};
class range_error : public runtime_error {
public:
range_error (const string& what_arg);
};
class overflow_error : public runtime_error {
public:
overflow_error (const string& what_arg);
};
exception () throw();
Constructs an object of class exception.
exception (const exception&) throw();
The copy constructor. Copies an exception object.
virtual ~exception() throw();
Destroys an object of class exception.
exception& operator= (const exception&) throw();
The assignment operator. Copies an exception object.
virtual const char* what()const throw();
Returns an implementation-defined, null-terminated byte string representing a human-readable message describing the exception. The message may be a null-terminated multibyte string, suitable for conversion and display as a wstring.
logic_error::logic_error (const string& what_arg);
Constructs an object of class logic_error.
domain_error::domain_error (const string& what_arg);
Constructs an object of class domain_error.
invalid_argument::invalid_argument (const string& what_arg);
Constructs an object of class invalid_argument.
length_error::length_error (const string& what_arg);
Constructs an object of class length_error.
out_of_range::out_of_range (const string& what_arg);
Constructs an object of class out_of_range.
runtime_error::runtime_error (const string& what_arg);
Constructs an object of class runtime_error.
range_error::range_error (const string& what_arg);
Constructs an object of class range_error.
overflow_error::overflow_error (const string& what_arg);
Constructs an object of class overflow_error.
//// exception.cpp // #include <iostream.h> #include <stdexcept> static void f() { throw runtime_error("a runtime error"); } int main () { // // By wrapping the body of main in a try-catch block we can // be assured that we'll catch all exceptions in the // exception hierarchy. You can simply catch exception as is // done below, or you can catch each of the exceptions in // which you have an interest. // try { f(); } catch (const exception& e) { cout << "Got an exception: " << e.what() << endl; } return 0; }