Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.


BOOST_WARN_THROW(expression, exception_type);
BOOST_CHECK_THROW(expression, exception_type);
BOOST_REQUIRE_THROW(expression, exception_type);

These assertions validate that the execution of expression raises an expected exception, which means an exception of the supplied exception_type type or of any child type.

[Warning] Warning

the assertion catches only the expected exceptions.

[Tip] Tip

It is possible to test for complex expressions with the use of constructs such as do { /* ... */} while(0) block.

Example: BOOST_<level>_THROW usage


#define BOOST_TEST_MODULE example
#include <boost/test/included/unit_test.hpp>

class my_exception{};

  int i =  0;
  BOOST_CHECK_THROW( i++, my_exception );


> example
Running 1 test case...
test.cpp(11): error in "test": exception my_exception is expected

*** 1 failures is detected in test suite "example"

See also: