no_exceptions_support

| Home | Libraries | People | FAQ | More

## no_exceptions_support

### Authors

- Pavel Vozenilek

### Header <boost/core/no_exceptions_support.hpp>

The header `<boost/core/no_exceptions_support.hpp>` defines macros for use in code that needs to be portable to environments that do not have support for C++ exceptions.

#### Synopsis

    #define BOOST_TRY /*unspecified*/
    #define BOOST_CATCH(x) /*unspecified*/
    #define BOOST_CATCH_END /*unspecified*/
    #define BOOST_RETHROW /*unspecified*/

#### Example Use

    void foo() {
      BOOST_TRY {
        ...
      } BOOST_CATCH(const std::bad_alloc&) {
          ...
          BOOST_RETHROW
      } BOOST_CATCH(const std::exception& e) {
          ...
      }
      BOOST_CATCH_END
    }

With exception support enabled it will expand into:

    void foo() {
      { try {
        ...
      } catch (const std::bad_alloc&) {
          ...
          throw;
      } catch (const std::exception& e) {
          ...
      }
      }
    }

With exception support disabled it will expand into:

    void foo() {
      { if(true) {
        ...
      } else if (false) {
          ...
      } else if (false)  {
          ...
      }
      }
    }