Use C++ exception model in D

Jacob Carlborg doob at me.com
Thu Apr 10 12:23:11 PDT 2014


On 2014-04-10 08:53, deadalnix wrote:

> The C++ personality function from GCC does not catch, but do the cleanup
> on foreign exceptions. That sound like the right behavior to me.

As far as I understand the cleaning is only a part of what personality 
function does. The first thing it does is check if the thrown exception 
can be handled. Like determine if it's a C++ exception or some other 
exception. If I recall correctly, it also determines if and where to 
resume unwinding, where to find catch blocks and so on.

This [1] series of blog posts gives a pretty good understanding of how 
C++ exceptions work under the hood, for those that don't want to read 
the ABI documentation.

[1] http://monoinfinito.wordpress.com/series/exception-handling-in-c/

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list