Exception Handling
Volker Stolz
stolz@I2.Informatik.RWTH-Aachen.DE
Tue, 28 Nov 2000 12:28:50 +0100
On Tue, Nov 28, 2000 at 11:15:14AM +0000, Smelly Pooh wrote:
> I'm writing an application at the moment (in Haskell duh) and the issue of
> exception handling has come up. I don't want to use Maybe (because that would
> destructure the code somewhat) or any kind of Monad and I've settled on the
> idea of SPJs Exception extension. The idea is to create a data type with a
> different constructor per exception as in
>
> data MyException = Ex1 | Ex2 | Ex3
>
> then use throwDyn/catchDyn to throw and catch it. Unfortunately this requires
> MyException to be an instance of class Typeable, and the documentation on that
> is quite sparse. Any advice or pointers would be greatly appreciated
\begin{code}
data DMsg = DOne | DTwo Int | DThree String | DQuit
instance Typeable DMsg where
typeOf _ = mkAppTy msgTc []
msgTc :: TyCon
msgTc = mkTyCon "Msg"
-- To Dynamic:
let dyn = toDyn msg
-- and back:
let msg = fromDynamic dyn
case msg of
Just _ -> ...
Nothing -> error (..)
\end{code}
--
\usepackage[latin1]{inputenc}!
Volker Stolz * stolz@i2.informatik.rwth-aachen.de * PGP + S/MIME