On Tue, 21 Dec 2010 17:25:09 -0500, Rob <[email protected]> wrote:

Steven Schveighoffer wrote:

An exception is a recoverable error,

Not necessarily. At some point, all the handling options could have been
tried but all failed in which case there is nothing left to do except for
letting something higher up (like the operating system) deal with the
situation. In such a case, recovery did not occur if you consider
recovery to mean that the program keeps running normally.

In D, unrecoverable errors derive from Error, recoverable ones derive from Exception.

By 'recovery' I mean that the program can either continue to run or decide proactively to do something different (like print an error and exit). But control is still in the programmer's hands.

Exception handling is
great when it exists at a much higher level, because you can
essentially do all error handling in one spot, and simply write code
without worrying about error codes.

That sounds like the common misconception that leads to weak designs.

So you tell me, what is a good design with exceptions? Because it seems like doing:

try fn()
catch(Exception) {...}

is pretty ugly and cumbersome (and clearly has performance issues), when it could be:

if(fn() != 0)
  ...

To me, if you are surrounding a single low-level call with an exception handler, your design has issues.

-Steve

Reply via email to