...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
#include <boost/phoenix/statement/try_catch.hpp>
The syntax is:
try_ [ sequenced_statements ] .catch_<exception_type>() [ sequenced_statements ] ... .catch_all [ sequenced_statement ]
Note the usual underscore after try and catch, and the extra parentheses required after the catch.
Example: The following code calls the (lazy) function f
for each element, and prints messages about different exception types it
catches.
try_ [ f(arg1) ] .catch_<runtime_error>() [ cout << val("caught runtime error or derived\n") ] .catch_<exception>() [ cout << val("caught exception or derived\n") ] .catch_all [ cout << val("caught some other type of exception\n") ]