| Copyright | (c) Aleksey Makarov 2021 | 
|---|---|
| License | BSD 3-Clause License | 
| Maintainer | aleksey.makarov@gmail.com | 
| Stability | experimental | 
| Portability | portable | 
| Safe Haskell | Safe-Inferred | 
| Language | Haskell2010 | 
Control.Exception.ChainedException
Description
Exception that keeps the stack of error locations.
Synopsis
- data ChainedExceptionNext
 - data ChainedException = ChainedException {}
 - chainedError :: Q Exp
 - chainedError' :: Q Exp
 - addContext :: Q Exp
 - addContext' :: Q Exp
 - maybeAddContext :: Q Exp
 - maybeAddContext' :: Q Exp
 - eitherAddContext' :: Q Exp
 
Documentation
data ChainedExceptionNext Source #
Structure to organize the stack of exceptions with locations
Constructors
| Null | exception was initiated by   | 
| Next SomeException | some context was added to   | 
| NextChained ChainedException | some context was added to a   | 
data ChainedException Source #
Exception that keeps track of error locations
Constructors
| ChainedException | |
Instances
| Exception ChainedException Source # | |
Defined in Control.Exception.ChainedException Methods toException :: ChainedException -> SomeException #  | |
| Show ChainedException Source # | |
Defined in Control.Exception.ChainedException Methods showsPrec :: Int -> ChainedException -> ShowS # show :: ChainedException -> String # showList :: [ChainedException] -> ShowS #  | |
chainedError :: Q Exp Source #
$chainedError results in a function of type
 'chainedError :: MonadThrow m => String -> m a'.
 It throws ChainedException with its argument as error description.
chainedError' :: Q Exp Source #
$chainedError' is the same as $chainedError ""
addContext :: Q Exp Source #
$addContext results in a function of type
 'addContext :: MonadCatch m => String -> m a -> m a'.
 It runs the second argument and adds ChainedException with its first argument
 to the exceptions thrown from that monad.
addContext' :: Q Exp Source #
$addContext' is the same as $addContext ""
maybeAddContext :: Q Exp Source #
$maybeAddContext results in a function of type
 'maybeAddContext :: MonadThrow m => String -> Maybe a -> m a'.
 If its second argument is Nothing, it throws ChainedException with its first argument,
 else it returns the value of Just.
maybeAddContext' :: Q Exp Source #
$maybeAddContext' is the same as $maybeAddContext ""
eitherAddContext' :: Q Exp Source #
$eitherAddContext' results in a function of type
 'eitherAddContext' :: MonadThrow m => Either String a -> m a'.
 If its argument is , it throws Left eChainedException with e as error description,
 else it returns the value of Right.