
Module: Standard C++ Library Library: Language support
Does not inherit
Class exception is the base class that supports logic and runtime errors.
#include <exception>
namespace std {
class exception;
}
namespace std {
class exception {
public:
exception() throw();
exception(const exception&) throw();
exception& operator=(const exception&) throw();
virtual ~exception() throw();
virtual const char* what() const throw();
};
}
//
// except.cpp
//
#include <iostream>
#include <stdexcept>
#ifndef _RWSTD_NO_EXCEPTIONS
int main ()
{
try {
// Enable exceptions in cin.
std::cin.exceptions(std::ios::eofbit);
// Clear all bits and set eofbit.
std::cin.clear(std::ios::eofbit);
}
catch (const std::ios::failure &e) {
std::cout << "Caught an exception: "
<< e.what () << std::endl;
}
catch (const std::exception &e) {
std::cout << "Caught an exception: "
<< e.what () << std::endl;
return 1; // Indicate failure.
}
catch (...) {
std::cout << "Caught an unknown exception"
<< std::endl;
return 1; // Indicate failure.
}
return 0;
}
#else
int main ()
{
std::cout << "Exceptions not supported." << std::endl;
return 0;
}
#endif // _RWSTD_NO_EXCEPTIONS
Program Output:
Caught an exception: std::cin: stream object has set ios::eofbit
exception() throw();
Default constructor. Constructs an object of class exception.
exception(const exception&) throw();
Copy constructor. Copies an exception object.
virtual ~exception() throw();
Destructor. Destroys an object of class exception.
exception& operator=(const exception&) throw();
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.
Exceptions, bad_alloca, bad_cast, bad_exception, bad_typeid, domain_error, invalid_argument, ios_base::failure, length_error, logic_error, out_of_range, overflow_error, range_error, runtime_error, underflow_error
ISO/IEC 14882:1998 -- International Standard for Information Systems --Programming Language C++, Section 19.1
Copyright (c) 1994-2006 Rogue Wave Software, a Quovadx Division.
Licensed under the Apache License, Version 2.0.
Contact Rogue Wave about documentation or support issues. You can also seek help from other developers through the Apache stdcxx community (see below).