| Safe Haskell | Safe | 
|---|---|
| Language | Haskell2010 | 
Exception
Synopsis
- module Control.Exception
- class MonadIO m => ExceptionMonad m where
- catchIO :: IO a -> (IOException -> IO a) -> IO a
- handleIO :: (IOException -> IO a) -> IO a -> IO a
- tryIO :: IO a -> IO (Either IOException a)
- gtry :: (ExceptionMonad m, Exception e) => m a -> m (Either e a)
- ghandle :: (ExceptionMonad m, Exception e) => (e -> m a) -> m a -> m a
- gonException :: ExceptionMonad m => m a -> m b -> m a
Documentation
module Control.Exception
class MonadIO m => ExceptionMonad m where #
A monad that can catch exceptions.  A minimal definition
 requires a definition of gcatch.
Implementations on top of IO should implement gmask to
 eventually call the primitive mask.
 These are used for
 implementations that support asynchronous exceptions.  The default
 implementations of gbracket and gfinally use gmask
 thus rarely require overriding.
Methods
gcatch :: Exception e => m a -> (e -> m a) -> m a #
gmask :: ((m a -> m a) -> m b) -> m b #
Instances
| ExceptionMonad IO # | |
| ExceptionMonad Ghc # | |
| ExceptionMonad (IOEnv a) # | |
| ExceptionMonad m => ExceptionMonad (GhcT m) # | |
gtry :: (ExceptionMonad m, Exception e) => m a -> m (Either e a) #
ghandle :: (ExceptionMonad m, Exception e) => (e -> m a) -> m a -> m a #
gonException :: ExceptionMonad m => m a -> m b -> m a #
Always executes the first argument. If this throws an exception the second argument is executed and the exception is raised again.