Re: type info of exception

From: Vladimir Ciobanu (rhaaw_at_rdsnet.ro)
Date: 08/30/04


Date: Mon, 30 Aug 2004 09:35:05 +0300


"Old Wolf" wrote:
> that occurred?
>
> I noticed when an uncaught exception occurred, GCC (3.4.1)
> displayed:
>
> terminate called after throwing an instance of 'std::logic_error'
> what(): basic_string::_S_construct NULL not valid
>
> So I tried:
>
> catch(std::exception &e) {
> std::cerr << "[E] Exception (" << typeid(e).name()
> << ") thrown: " << e.what() << std::endl;
> }
> but got output:
> [E] Exception (St11logic_error) thrown:
> basic_string::_S_construct NULL not valid
>
> ie. it said St11logic_error instead of std::logic_error. Do
> I have to try using a compiler-specific unmangling function?

In the C++ standard, under 18.5.1[8], the return of
std::type_info::name() is
implementation-defined. This means that some compilers might chose to
return
"std::logic_error", some might have some specific mangled name for it
(such as
it is in your case) or some might even return an empty string.

Vladimir Ciobanu