Comparing to Java language C++ has only a few standard exception class. User programs can derive their own exception classes to express specific exceptions. Here we present the standard exceptions.
class exception {}; // <exception>
class bad_alloc : public exception {}; // new <new>
class bad_cast : public exception {}; // dynamic_cast
class bad_typeid : public exception {}; // typeid(0)
class ios_base::failure : public exception {}; // unexpected() <ios>
class bad_exception : public exception {}; // unexpected()
class runtime_error : public exception {}; // math. computation
class range_error : public runtime_error {};
class overflow_error : public runtime_error {};
class underflow_error : public runtime_error {};
class logic_error : public exception {};
class domain_error : public logic_error {}; // domain error
class invalid_argument : public logic_error {}; // bitset char != 0 or 1
class length_error : public logic_error {}; // std::string length exceeded
class out_of_range : public logic_error {}; // bad index in cont. or string
namespace std
{
class exception
{
public:
virtual const char *what() const throw();
...
};
}