On Mon, Nov 3, 2008 at 9:34 AM, Jason Dagit <[EMAIL PROTECTED]> wrote: > > Ah, but I had one more question that I don't think anyone has answered > yet. That is, how to deal with multiple types of exceptions. > Suppose, as a concrete example, that I was looking out for both > ExitCode and PatternMatchFail exceptions. Maybe I'm being naive, but > it seems like I'm in that situation again where I have to catch all > and then check if fromException succeeds on either PatternMatchFile or > ExitCode types. And then throw if it both give Nothing? >
I haven't tried this, so it may not work: >>>> data MyException = MyArithException ArithException | MyIOException IOException deriving Typeable instance Exception MyExcpetion where toException (MyArithException e) = toException e toException (MyIOExcpetion e) = toException e fromException se = case fromException se of Just e -> Just $ MyArithException e Nothing -> case fromException se of Just e -> Just $ MyIOException e _ -> Nothing <<<<< Then anyone can catch your exceptions by catching the ArithException or IOException as normal, and you can catch IOExceptions and ArithExceptions into your own custom type. -Antoine _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users