[diagnostics.general] # 19 Diagnostics library [[diagnostics]](./#diagnostics) ## 19.1 General [diagnostics.general] [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/diagnostics.tex#L6) This Clause describes components that C++ programs may use to detect and report error conditions[.](#1.sentence-1) [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/diagnostics.tex#L10) The following subclauses describe components for reporting several kinds of exceptional conditions, documenting program assertions, obtaining stacktraces, and a global variable for error number codes, as summarized in Table [49](#tab:diagnostics.summary "Table 49: Diagnostics library summary")[.](#2.sentence-1) Table [49](#tab:diagnostics.summary) — Diagnostics library summary [[tab:diagnostics.summary]](./tab:diagnostics.summary) | [🔗](#tab:diagnostics.summary-row-1) | **Subclause** | **Header** | | --- | --- | --- | | [🔗](#tab:diagnostics.summary-row-2)
[[std.exceptions]](std.exceptions "19.2 Exception classes") | Exception classes | | | [🔗](#tab:diagnostics.summary-row-3)
[[assertions]](assertions "19.3 Assertions") | Assertions | | | [🔗](#tab:diagnostics.summary-row-4)
[[errno]](errno "19.4 Error numbers") | Error numbers | | | [🔗](#tab:diagnostics.summary-row-5)
[[syserr]](syserr "19.5 System error support") | System error support | | | [🔗](#tab:diagnostics.summary-row-6)
[[stacktrace]](stacktrace "19.6 Stacktrace") | Stacktrace | | | [🔗](#tab:diagnostics.summary-row-7)
[[debugging]](debugging "19.7 Debugging") | Debugging | |