« Return to Thread: STDCXX-600

STDCXX-600

by Eric Lemings-2 :: Rate this Message:

Reply to Author | View in Thread

 
FYI-type stuff.

I've been at this issue for the past couple hours.  Here's what I've
found so far.

My basic test case looks like this:

#include <exceptions>
#include <stdexcept>
 
int main () {
    try {
        // throw statement (see below)
    } catch (std::exception&) {
    } catch (...) {
    }

    return 0;
}

The following "throw statements" all throw exceptions that are not
getting caught by the compiler's runtime libraries:

a. _RW::__rw_throw (_RWSTD_ERROR_OUT_OF_RANGE, _RWSTD_FUNC
("main()"), 1, 0);
b.    _RW::__rw_throw_proc (_RWSTD_ERROR_OUT_OF_RANGE, "what");

No clue yet why they are not caught.

The following "throw statement" however is caught properly:

c.    char* what = "what"; throw (_STD::out_of_rang&)_STD::out_of_range
()._C_assign (what, 0);

Both of the first throw statements ultimately call the last throw
statement so my current guess is that the problem has something to do
with the internal what buffer.

Brad.

 « Return to Thread: STDCXX-600

LightInTheBox - Buy quality products at wholesale price!