
On Sat, Mar 8, 2008 at 9:54 AM, Xiao-Yong Jin
ArrayException? If it is out-of-bounds reading or writing, surely that indicates a bug in your program that you'd rather fix than catch the exception, no?
In my case, because I choose a index of the array according to certain value in the array, if there is NaN or Infinity in the array, the code breaks. So I guess, to fix the code, I would probably use isNaN/isInfinite and throw an exception when that happens.
I see. In that case, you should check out the ErrorT monad transformer (http://haskell.org/ghc/docs/latest/html/libraries/mtl/Control-Monad-Error.ht...); it lets you throw an error conveniently using Either. It may or may not fit your needs, but at least it's worth knowing about. And in case you don't understand monad transformers: if you understand the State monad, the following post is a fairly nice, minimal explanation of monad transformers: http://sigfpe.blogspot.com/2006/05/grok-haskell-monad-transformers.html -- Denis