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.

Reply via email to