
On Sat, 28 Mar 2009, Gregory Petrosyan wrote:
On Sat, Mar 28, 2009 at 10:53 AM, Ketil Malde
wrote: So the difference between an exception or an error type is mainly what you intend to do about it. There's no point in wrapping divisions in Maybe unless you actually are able to do something useful to recover from a zero denominator.
That is exactly the point I was trying to make.
When I write a code, I can't say in advance, in what way it will be used. So, for dealing with errors, I have to choose one way or another, mostly without that knowledge. When I'm using e.g. C++, it's easy: something like mantra "when in doubt, throw an exception" :-) combined with RAII, works good (but not ideal, of course).
In C++ you can either throw exceptions or return integer codes in order to show exceptional situations. An error is, if you write in non-allocated memory areas.
So, I'll ask again: when I program in Haskell, what mechanism should I use?
I think this question was enough answered in general here in the thread and on the Wiki pages. I think we can better discuss concrete situations. Do you have a function in your code where you are uncertain whether to use error or exceptions?