Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell98 |
- 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 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 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.
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.