Re: try/catch behaviour with SEH (VC++ 8)
"Aurelien Regat-Barrel" <nospam.aregatba@yahoo.fr.invalid> wrote in
message news:eVDmedT8HHA.5456@TK2MSFTNGP05.phx.gbl
I am a little bit confused. I used to think that std C++ exceptions
are mapped on top of SEH with VC++, but it seems it is no longer
true. The following example:
[snip]
outputs "Catched in C++ handler!" if compiled with VC++ 6 - okay. But
VC++ Express 2005 SP1 warns about unreachable code in the catch(...)
block (warning C4702), and the compiled program outputs "Catched in
SEH handler!".
The behavior was considered a bug in VC6, and fixed in later versions.
catch(...) no longer catches structured exceptions. If for some reason
you need it to, use _set_se_translator to convert them into regular C++
exceptions. Make sure to compile with /EHa.
--
With best wishes,
Igor Tandetnik
With sufficient thrust, pigs fly just fine. However, this is not
necessarily a good idea. It is hard to be sure where they are going to
land, and it could be dangerous sitting under them as they fly
overhead. -- RFC 1925