Le 24/05/2012 21:33, Sean Kelly a écrit :
On May 24, 2012, at 11:39 AM, Steven Schveighoffer wrote:

On Thu, 24 May 2012 06:27:12 -0400, Denis 
Shelomovskij<verylonglogin....@gmail.com>  wrote:

Let's talk about an abstract situation without caring about breaking existing 
code, current docs, implementation etc.

Definitions:
* an Exception is something that tigers scope guards and executes catch/finally 
blocks if thrown;
* an Error is something that doesn't do it.

I'll give you a different definition:

* an Exception is something that can be handled far away from the context of 
the error, because the system can safely unwind the stack.
* an Error must be handled at the point the error occurred, or the program 
state is by definition invalid.

This is a good point.  OutOfMemory conditions aside, the only time I'd want to 
recover from an Error condition was at the point the event occurred, not 
somewhere up the stack.


Often, the point of Exception isn't to recover, but to fail as cleanly as possible. To do so, Error must trigger finally blocks and scope statement.

They probably shouldn't be catchable in @safe code because of the possible invalid state of the program.

But still, often recovering isn't the point when it come to problem as bad as Errors.

Reply via email to