Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
- module Control.Exception
- catchIO :: IO a -> (IOException -> IO a) -> IO a
- handleIO :: (IOException -> IO a) -> IO a -> IO a
- tryIO :: IO a -> IO (Either IOException a)
- class (Applicative m, MonadIO m) => ExceptionMonad m where
- 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 (Applicative m, 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
ExceptionMonad IO | |
ExceptionMonad Ghc | |
ExceptionMonad (IOEnv a) | |
ExceptionMonad m => ExceptionMonad (GhcT m) | |
gtry :: (ExceptionMonad m, Exception e) => m a -> m (Either e a) 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.