Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
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 Source #
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.
gcatch :: Exception e => m a -> (e -> m a) -> m a Source #
gmask :: ((m a -> m a) -> m b) -> m b Source #
Instances
ExceptionMonad IO Source # | |
ExceptionMonad Ghc Source # | |
ExceptionMonad (IOEnv a) Source # | |
ExceptionMonad m => ExceptionMonad (GhcT m) Source # | |
ghandle :: (ExceptionMonad m, Exception e) => (e -> m a) -> m a -> m a Source #
gonException :: ExceptionMonad m => m a -> m b -> m a Source #
Always executes the first argument. If this throws an exception the second argument is executed and the exception is raised again.