[Haskell] Better Exception Handling
Scott Turner
p.turner at computer.org
Wed Nov 24 18:29:14 EST 2004
John Goerzen wrote:
> I note, though, that "making an Either into a Monad" doesn't do
> anything to deal with asynchronous exceptions.
[ snip]
> I was referring to exceptions generated by things such as signals,
> interrupts, certain network errors, stack problems, etc.
How would you like asynchronous exceptions to fit in? Your original request
mentioned that it was annoying to have to use the IO monad for all
exceptions, particularly when the exceptions occur in deterministic code.
But the IO monad is plainly appropriate for asynchronous exceptions.
If what you need is to catch asynchronous exceptions as soon as possible and
propogate them as Either-based exceptions, then my sample code can be readily
extended in that way. For example, you could catch a network error and
propogate it with a message saying that the error occurred during an FTP
write operation. This is possible because the monad that's used for the FTP
module combines Either with IO.
More information about the Haskell
mailing list