Why exceptions for error handling is so important
via Digitalmars-d
digitalmars-d at puremagic.com
Tue Jan 13 11:36:29 PST 2015
On Monday, 12 January 2015 at 23:01:53 UTC, Ola Fosheim Grøstad
wrote:
> On Monday, 12 January 2015 at 22:06:32 UTC, deadalnix wrote:
>> No, Exception are a bail out mechanism. It is the, I have no
>> idea what to do about this mechanism.
>
> The way it is done in C++, yes.
>
>> If you put aside performance concerns, exceptions for control
>> flow also tend to make many code path implicit and makes for
>> very unreadable/unmaintainable code.
>
> But exceptions are control flow. There is no such thing as
> normalized control flow, all state changes implies "control
> flow". Think in terms of a state machine. You could just remove
> all variables and only have a big state machine (assuming
> finite dimensions). Every single state transition implies flow
> of control.
>
> The control flow you see in the source code is just the
> programmer's "rendition" of control flow. Exceptions is a
> mechanism for getting cluttering resolution out of that
> rendition to make the code more readable and maintainable. The
> goal is to retain the meat of the computation and remove the
> noise.
>
> Or to put it differently, there are many ways to write the same
> function. Good use of exceptions removes the clutter and leaves
> the things you care about visible. It's a mechanism, not a
> moral issue or a religion.
>
> So there is nothing wrong with throwing HTTPStatus(409) or
> HTTPStatus(201), even though it returns state to the
> environment. If that means the code is more maintainable and
> more likely to be correct, then that is good use of the
> mechanism.
I usually don't do this, but I really need to post a "+1" here:
+1
More information about the Digitalmars-d
mailing list