
On Fri, 2009-03-27 at 21:16 -0700, Donn Cave wrote:
Quoth Henning Thielemann
, On Fri, 27 Mar 2009, Donn Cave wrote:
Quoth Jonathan Cast
, An `error' is any condition where the correct response is for the programmer to change the source code :)
That's a broad category, that overlaps with conditions where there are one or more correct responses for the original program as well.
If I throw exceptions within the type system, using IO or whatever, and at some later time observe that I have caught one that would have been better handled closer to its source, for example. I've already technically satisfied my requirement, since everything is in an exception monad, but the exception is still a bug.
I don't understand this one.
A lame attempt to demonstrate that "condition where [a] correct response is to change the code"
Please don't mis-quote me. I said `the' correct response. Both programming and operating computers are goal-directed processes; an error is a situation where the program detects a bug such that it cannot make progress toward the current goal without the programmer going and fixing that bug. If you have a condition where there is something (useful...) you want to do within the context of the current source code, do not use an error to signal that condition. Use an exception.
applies to too many cases to be useful. (And that there are no cases where [the only] correct response is to change the code.)
I think Henning's response, and others, have adequately covered this. jcc