hs-java-0.2: JVM/Exceptions.hs
{-# LANGUAGE DeriveDataTypeable, ExistentialQuantification #-}
module JVM.Exceptions where
import Control.Monad.Exception
data NoItemInPool = forall a. Show a => NoItemInPool a
deriving (Typeable)
instance Exception NoItemInPool
instance Show NoItemInPool where
show (NoItemInPool s) = "Internal error: no such item in pool: <" ++ show s ++ ">"
force :: String -> EM AnyException a -> a
force s x =
case tryEM x of
Right result -> result
Left exc -> error $ "Exception at " ++ s ++ ": " ++ show exc