On 12/26/2012 6:26 PM, Andrej Mitrovic wrote:
On 12/27/12, Walter Bright <[email protected]> wrote:
Windows knows nothing about D exceptions
Then why does my code sample work?
A lot of code can appear to work, but that doesn't mean it is correct and robust
and will work on future versions of Windows. Code should not impute things into
an ABI spec. The Windows ABI spec says nothing at all about accepting D
exceptions, therefore none should be presented to it.
If Windows really knows nothing about D exceptions why are we letting
Error and Throwable through, shouldn't we also catch those and then
call core.stdc.exit() or ExitProcess()?
Take a look at druntime\src\rt\dmain2.d. It catches all Throwable's and swallows
them - it does not expect the C runtime to handle D exceptions. This is why
Throwable is still catchable.