Boost logo

Boost :

From: Hajo Kirchhoff (mailinglists_at_[hidden])
Date: 2004-10-28 05:19:58


Carl Daniel wrote:
>
> If you want to use catch(...) in VC++ code and NOT translate platform
> exceptions into C++ exceptions, your only real choice is to use
> __set_se_handler to set a "handler" that terminates the program when a
> platform exception is raised.
>

It is even possible to rely on the default handler which invokes the
debugger. You simply throw the exception from the se_handler.

void se_trans(unsigned int i, _EXCEPTION_POINTERS *p)
{
     throw;
}

Call

#pragma warning(disable:4535)
     _set_se_translator(se_trans);
#pragma warning(default:4535)

in main(). The pragma disable the warning that the application has to be
compiled with asynchronous exception model. But this is irrelevant if
you just rethrow the exception and the default handler terminates the
application anyway.

Hajo


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk