Why exceptions for error handling is so important
Martin Nowak via Digitalmars-d
digitalmars-d at puremagic.com
Mon Jan 12 06:57:19 PST 2015
On Monday, 12 January 2015 at 00:51:25 UTC, Walter Bright wrote:
> On 1/11/2015 5:06 AM, Dicebot wrote:
>> What is your opinion of approach advertised by various
>> functional languages and
>> now also Rust? Where you return error code packed with actual
>> data and can't
>> access data without visiting error code too, compiler simply
>> won't allow it.
>
> It's a great question. I have a lot of experience with error
> codes, and with exceptions. I have zero with the packed scheme,
> though that doesn't stop me from having an opinion :-)
>
> Perhaps I misunderstand, but given A calls B calls C,
>
> A => B => C
The general solution in functional programming is error chaining.
An example, C is a function that reads in lines of a program and
B is a function that takes all those lines and counts words.
C will either return an error or lines and B will either
immediately return that error to A or convert the lines to word
counts.
This works especially well with function chaining, because you
can hide the error propagation in a generic chaining method
(called map).
http://danielwestheide.com/blog/2012/12/26/the-neophytes-guide-to-scala-part-6-error-handling-with-try.html
More information about the Digitalmars-d
mailing list