diff options
Diffstat (limited to 'clang-tools-extra/docs/clang-tidy')
-rw-r--r-- | clang-tools-extra/docs/clang-tidy/checks/hicpp-exception-baseclass.rst | 30 | ||||
-rw-r--r-- | clang-tools-extra/docs/clang-tidy/checks/list.rst | 1 |
2 files changed, 31 insertions, 0 deletions
diff --git a/clang-tools-extra/docs/clang-tidy/checks/hicpp-exception-baseclass.rst b/clang-tools-extra/docs/clang-tidy/checks/hicpp-exception-baseclass.rst new file mode 100644 index 00000000000..42563aeaee3 --- /dev/null +++ b/clang-tools-extra/docs/clang-tidy/checks/hicpp-exception-baseclass.rst @@ -0,0 +1,30 @@ +.. title:: clang-tidy - hicpp-exception-baseclass + +hicpp-exception-baseclass +========================= + +Ensure that every value that in a ``throw`` expression is an instance of +``std::exception``. + +This enforces `rule 15.1 <http://www.codingstandard.com/section/15-1-throwing-an-exception/>`_ +of the High Integrity C++ Coding Standard. + +.. code-block:: c++ + + class custom_exception {}; + + void throwing() noexcept(false) { + // Problematic throw expressions. + throw int(42); + throw custom_exception(); + } + + class mathematical_error : public std::exception {}; + + void throwing2() noexcept(false) { + // These kind of throws are ok. + throw mathematical_error(); + throw std::runtime_error(); + throw std::exception(); + } + diff --git a/clang-tools-extra/docs/clang-tidy/checks/list.rst b/clang-tools-extra/docs/clang-tidy/checks/list.rst index 3f1c57aface..1d99a4ed90e 100644 --- a/clang-tools-extra/docs/clang-tidy/checks/list.rst +++ b/clang-tools-extra/docs/clang-tidy/checks/list.rst @@ -63,6 +63,7 @@ Clang-Tidy Checks google-runtime-operator google-runtime-references hicpp-braces-around-statements (redirects to readability-braces-around-statements) <hicpp-braces-around-statements> + hicpp-exception-baseclass hicpp-explicit-conversions (redirects to google-explicit-constructor) <hicpp-explicit-conversions> hicpp-function-size (redirects to readability-function-size) <hicpp-function-size> hicpp-invalid-access-moved (redirects to misc-use-after-move) <hicpp-invalid-access-moved> |