Boost logo

Boost :

From: carlos pizano (carlospizano_at_[hidden])
Date: 2003-09-21 13:08:45

Dave Abrahams wrote:
> No, I'm disabling the warning with pragmas. The technique works fine.

I don't think so. Well, it can fail. See Carl Daniel post on 9/21. I saw
the thread(s) on comp.lang.c++.moderated about the subject but nobody
mentioned the interaction of the *technique* with /EHs at that time.

Here is where I am going with this. The current way, complied with /EHs
seems to me that can be better done with something along the lines of:


        catch( specific_type1& )
        catch( specific_type2& )
        ... other type specific catch(s) here..
        ... do not put catch(...) here ever..
__except ( filter(GetExceptionInformation()) )

} // end of function

/* take the above code at the pseudo-code level */

Now, inside filter() you can do interesting things for instance
re-throwing the SE under certain conditions or checking for the magic
number that says that the SE is really a C++ exception and maybe do your

Note that the code above will be done in two nested calls since VC does
Allow you to mix __try and try on the same function.

There seems to be very little restrictions on what filter() can be, I
if we can make it dispatch to a virtual function so a derived class can
customize the behaviors.

Think about it.


Boost list run by bdawes at, gregod at, cpdaniel at, john at