Why exceptions for error handling is so important
deadalnix via Digitalmars-d
digitalmars-d at puremagic.com
Tue Jan 13 12:58:42 PST 2015
On Tuesday, 13 January 2015 at 19:36:31 UTC, Marc Schütz wrote:
> 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
Too bad you chose to do this on a bad strawmman.
More information about the Digitalmars-d
mailing list