More LDC Exception Handling Stuff

Frits van Bommel fvbommel at REMwOVExCAPSs.nl
Thu Jan 1 06:03:46 PST 2009


dsimcha wrote:
> When people say that exception handling doesn't work on LDC in some
> circumstances, does this mean that if the code uses exceptions it won't work,
> that you can't catch exceptions or something else?  If you just can't catch
> exceptions, it could still be useful to me for some data mining code that I
> sometimes write that has huge memory requirements (meaning I need 64-bit) but
> absolutely no robustness requirements (I pretty much treat all exceptions as
> unrecoverable because the program will only be run a few times and worrying
> about these details is a waste of my time.)  Would I be able to use LDC on
> platforms where exception handling isn't supported, with library code that
> throws exceptions, as long as I didn't care about catching these exceptions?

Even "uncaught" exceptions get caught by the runtime.
Last I checked on my (x86-64 Linux) machine, this code segfaults in the 
runtime when compiled with LDC:
-----
void main() {
     throw new Exception("test");
}
-----

I'm not sure what the throwing code does if you set rt_trapExceptions to 
false. It might just terminate the program, so try it and see; add 
something like the following code to one of your modules:
-----
extern extern (C) bool rt_trapExceptions;
static this() {
     rt_trapExceptions = false;
}
-----
(Note: This only works with Tango)



More information about the Digitalmars-d mailing list