
John Meacham writes:
On Fri, Apr 07, 2006 at 10:00:21AM -0500, John Goerzen wrote:
But here's my concern. Let's say that I wanted to, for some reason, create a MultiplyByZero exception. It should be broadly considered an ArithException, and any code that catches an ArithException should be able to catch my MultiplyByZero exception.
But the ArithException type is limited to storing errors that are defined by Control.Exception.ArithException. My MultiplyByZero is not defined there, so I am out of luck. The best I could do is define a new MultiplyByZero, and catch it in my own code. But any code that others have written to catch ArithExceptions would be blind to MultiplyByZero.
newtype ArithException a = ArithException a
data DivideByZero
throw (ArithException DivideByZero)
your code:
data MultiplyByZero throw (ArithException MultiplyByZero)
How would you use this to write a handler that captures any
ArithException?
--
David Menendez
participants (1)
-
Dave Menendez