# throw_exception.hpp

The header <boost/throw_exception.hpp> defines the helper function boost::throw_exception. It is intended to be used in Boost libraries that need to throw exceptions, but support configurations and platforms where exceptions aren't available, as indicated by the presence of the BOOST_NO_EXCEPTIONS configuration macro.

When BOOST_NO_EXCEPTIONS is not defined, `boost::throw_exception(e)` is equivalent to `throw e`. Otherwise, the function is left undefined, and the user is expected to supply an appropriate definition. Callers of `throw_exception` are allowed to assume that the function never returns; therefore, if the user-defined `throw_exception` returns, the behavior is undefined.

### Synopsis

    namespace boost
    {

    #ifdef BOOST_NO_EXCEPTIONS

    void throw_exception(std::exception const & e); // user defined

    #else

    template<class E> void throw_exception(E const & e)
    {
        throw e;
    }

    #endif

    }

Copyright © 2002 by Peter Dimov. Distributed under the Boost Software License, Version 1.0. See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.