Exception/Error division in D

Jonathan M Davis jmdavisProg at gmx.com
Wed May 30 01:40:21 PDT 2012


On Wednesday, May 30, 2012 10:26:36 deadalnix wrote:
> The fact that error don't trigger scope and everything is nonsensial.

If an Error is truly unrecoverable (as they're generally supposed to be), then 
what does it matter? Something fatal occured in your program, so it 
terminates. Because it's an Error, you can get a stack trace and report 
something before the program actually terminates, but continuing execution 
after an Error is considered to be truly _bad_ idea, so in general, why does 
it matter whether scope statements, finally blocks, or destructors get 
executed? It's only rarer cases where you're trying to do something like 
create a unit test framework on top of assert that you would need to catch an 
Error, and that's questionable enough as it is. In normal program execution, 
an error is fatal, so cleanup is irrelevant and even potentially dangerous, 
because your program is already in an invalid state.

- Jonathan M Davis


More information about the Digitalmars-d mailing list