The following libraries support error handling.
Boost.System provides classes to describe and identify errors. Since C++11, these classes have been part of the standard library.
Boost.Exception makes it possible to attach data to exceptions after they have been thrown.