Boost logo

Boost Users :

Subject: Re: [Boost-users] [coroutine] - only std exceptions are caught from coroutines
From: Emil Dotchevski (emildotchevski_at_[hidden])
Date: 2016-02-19 16:10:42


On Fri, Feb 19, 2016 at 8:14 AM, <Tamas.Ruszkai_at_[hidden]> wrote:

> Hi,
>
> I use boost coroutines and I have realized that in my environment (Visual
> Studio 2015 Update 1, x64) I cannot catch the exception type of a custom
> exception.
>
> The example below demonstrates the case. I have a custom exception derived
> from a std::runime_error. In the main function I want to catch my custom
> exception type that was thrown in the coroutine.
> However somehow I always end up in the catch branch of the
> std::runtime_error.
>
> Are custom exceptions are not supported by the coroutines library?

boost::exception_ptr requires that the exception is thrown using
enable_current_exception, see
www.boost.org/doc/libs/release/libs/exception/doc/enable_current_exception.html.
I recommend to throw the exception using BOOST_THROW_EXCEPTION, which
internally uses enable_current_exception.

Emil



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