On Fri, 2009-03-27 at 21:16 -0700, Donn Cave wrote: > Quoth Henning Thielemann <lemm...@henning-thielemann.de>, > > On Fri, 27 Mar 2009, Donn Cave wrote: > > > >> Quoth Jonathan Cast <jonathancc...@fastmail.fm>, > >> > >>> 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 _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe