Apache C++ Standard Library User's Guide

## 18.2 The Standard Exception Hierarchy

The C++ Standard Library implements the two-category error model described in Section 18.1 with a set of classes. These classes, which are defined in the `stdexcept` header file, can be used to catch exceptions thrown by the library and to throw exceptions from your own code.

The exception handling classes are related through inheritance. The inheritance hierarchy looks like this:

    exception
       logic_error
          domain_error
          invalid_argument
          length_error
          out_of_range
       runtime_error
          range_error
          overflow_error
          underflow_error

Classes logic_error and runtime_error inherit from class exception. All other exception handling classes inherit from either logic_error or runtime_error.