C++ defines a hierarchy of standard exceptions that are thrown at run time when abnormal conditions arise, such as when operator new fails. The standard exception classes are derived from std::exception class (defined in the
catch (std::exception& exc) {//handle exception of type std::exception as well as any exception derived from it }
The standard exceptions thrown by built-in operators of the language are:
bad_alloc //may be thrown by operator newbad_cast //may be thrown by operator dynamic_cast < >bad_typeid //may be thrown by operator typeidbad_exception //may be thrown when an exception specification of a function is violated Your code should contain appropriate handler(s) for these exceptions whenever you use any of these built-in operators.Please note:
- All standard exception classes are grouped under namespace std.
- The standard library has an additional set of exceptions thrown by its components.