1234567891011121314151617181920212223242526272829303132333435 |
- //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 <boost/exception/all.hpp>
- #include <iostream>
- typedef boost::error_info<struct tag_my_info,int> 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<my_info>(x) )
- std::cerr << "My info: " << *mi;
- }
- }
|