Boost logo

Boost Users :

Subject: Re: [Boost-users] [boost-users][exception] BOOST_THROW_EXCEPTION returns
From: Emil Dotchevski (emildotchevski_at_[hidden])
Date: 2009-03-24 14:20:43


On Tue, Mar 24, 2009 at 10:28 AM, Igor R <boost.lists_at_[hidden]> wrote:
> Hello all,
>
> A function throws boost::exception as follows:
>
>  //....
>  typedef boost::error_info<struct tag_action, std::string> action_name;
>  BOOST_THROW_EXCEPTION(error() << action_name(name));
>  return 0;
>
> Both BOOST_NO_EXCEPTIONS and BOOST_EXCEPTION_DISABLE are *not* defined.
> The excpetion is not catched anywhere. However, the thread continues
> running! If I put breakpoint at "return 0;" it's hit, and I can
> continue stepping the code. I run the program under MSVC 9.0, in debug
> mode, and I see "First-chance exception" and "Unhandled exception"
> notifications issued by the debugger.
> Isn't it wrong behavior, or I miss something?

Since the debugger tells you that the exception has been thrown, the
only way to get the behavior you're observing is if you catch it.

Try setting a break point in your exception's destructor. Since you're
deriving from boost::exception, you can set the break point at
boost::~exception(), in boost/exception/exception.hpp, line 254. It
should hit at the closing } in the exception handler.

Emil Dotchevski
Reverge Studios, Inc.
http://www.revergestudios.com/reblog/index.php?n=ReCode


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net