DIP33: A standard exception hierarchy

deadalnix deadalnix at gmail.com
Sat Apr 6 04:29:11 PDT 2013


On Friday, 5 April 2013 at 19:39:14 UTC, John Colvin wrote:
> On Friday, 5 April 2013 at 13:42:02 UTC, deadalnix wrote:
>
>> Right now, it isn't even possible to try a graceful shutdown 
>> when really, the program is unlikely to be in a completely 
>> unpredictable state, especially in @safe code.
>
> It is possible. Catch the error.
>

No.

At this point, the small issue is already transformed in complete 
havoc. Mutexes are not released, nothing is cleaned up, etc . . .

> However, having the language pretend that it can make any 
> logical guarantees to you like it does with exceptions (i.e. 
> finally blocks, chaining etc.) only encourages people not to 
> take Errors as seriously as one should.
> Soon people are throwing errors where they should be exceptions 
> and vice versa. Even worse: people will be catching errors 
> everywhere and their code could be happily running for days 
> performing undefined behaviour.
>

Well go all the way down the reasoning : nothing ensure that the 
stack isn't corrupted and that unwinding is possible.

> This is a similar situation to shared (although with some 
> important differences). Making it easier to use would be like 
> putting a seatbelt on a motorbike. Sure, it might be safer some 
> of the time. It'll definitely require less care to use. But 
> when the bike slips sideways underneath you going round a bend 
> at 80mph, you need to kick it away as fast as possible.
> It'll save you all the times it *doesn't* matter, but it'll 
> kill you that one time when it *does*.

I'm not sure a media player can kill me.


More information about the Digitalmars-d mailing list