Customizable assert macros.
The Boost Exception library supports transporting of arbitrary data in exception objects, and transporting of exceptions between threads.
A lightweight error handling library for C++11.
Extensible error reporting.
A common infrastructure for throwing exceptions from Boost libraries.