> -----Original Message----- > From: Martin Sebor [mailto:[EMAIL PROTECTED] On Behalf Of Martin Sebor > Sent: Wednesday, July 23, 2008 5:47 PM > To: [email protected] > Subject: Re: STDCXX-600 > > Eric Lemings wrote: > > > > 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); > > Have you tried changing this to something like: > > _STD::out_of_range ex; > ex._C_assign (what, 0); > throw ex;
I did but I got some sort of weird compile error: invalid goto label or something like that. Brad.
