//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. //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) //This example shows how to add data to boost::exception objects at the //point of the throw, and how to retrieve that data at the point of the catch. #include #include typedef boost::error_info my_info; //(1) struct my_error: virtual boost::exception, virtual std::exception { }; //(2) void f() { throw my_error() << my_info(42); //(3) } void g() { try { f(); } catch( my_error & x ) { if( int const * mi=boost::get_error_info(x) ) std::cerr << "My info: " << *mi; } }