Copyright | (c) The University of Glasgow 1998-2002 |
---|---|
License | see libraries/base/LICENSE |
Maintainer | cvs-ghc@haskell.org |
Stability | internal |
Portability | non-portable (GHC extensions) |
Safe Haskell | None |
Language | Haskell2010 |
Exception context type.
Synopsis
- data ExceptionContext = ExceptionContext [SomeExceptionAnnotation]
- emptyExceptionContext :: ExceptionContext
- addExceptionAnnotation :: ExceptionAnnotation a => a -> ExceptionContext -> ExceptionContext
- getExceptionAnnotations :: ExceptionAnnotation a => ExceptionContext -> [a]
- getAllExceptionAnnotations :: ExceptionContext -> [SomeExceptionAnnotation]
- mergeExceptionContext :: ExceptionContext -> ExceptionContext -> ExceptionContext
- displayExceptionContext :: ExceptionContext -> String
- data SomeExceptionAnnotation = ExceptionAnnotation a => SomeExceptionAnnotation a
- class Typeable a => ExceptionAnnotation a where
- displayExceptionAnnotation :: a -> String
Exception context
data ExceptionContext Source #
Exception context represents a list of ExceptionAnnotation
s. These are
attached to SomeException
s via addExceptionContext
and
can be used to capture various ad-hoc metadata about the exception including
backtraces and application-specific context.
ExceptionContext
s can be merged via concatenation using the Semigroup
instance or mergeExceptionContext
.
Note that GHC will automatically solve implicit constraints of type ExceptionContext
with emptyExceptionContext
.
Instances
Monoid ExceptionContext Source # | |
Defined in GHC.Internal.Exception.Context | |
Semigroup ExceptionContext Source # | |
Defined in GHC.Internal.Exception.Context (<>) :: ExceptionContext -> ExceptionContext -> ExceptionContext Source # sconcat :: NonEmpty ExceptionContext -> ExceptionContext Source # stimes :: Integral b => b -> ExceptionContext -> ExceptionContext Source # |
emptyExceptionContext :: ExceptionContext Source #
An ExceptionContext
containing no annotations.
@since base-4.20.0.0
addExceptionAnnotation :: ExceptionAnnotation a => a -> ExceptionContext -> ExceptionContext Source #
Construct a singleton ExceptionContext
from an ExceptionAnnotation
.
@since base-4.20.0.0
getExceptionAnnotations :: ExceptionAnnotation a => ExceptionContext -> [a] Source #
Retrieve all ExceptionAnnotation
s of the given type from an ExceptionContext
.
@since base-4.20.0.0
mergeExceptionContext :: ExceptionContext -> ExceptionContext -> ExceptionContext Source #
Merge two ExceptionContext
s via concatenation
@since base-4.20.0.0
displayExceptionContext :: ExceptionContext -> String Source #
Render ExceptionContext
to a human-readable String
.
@since base-4.20.0.0
Exception annotations
class Typeable a => ExceptionAnnotation a where Source #
ExceptionAnnotation
s are types which can decorate exceptions as
ExceptionContext
.
@since base-4.20.0.0
Nothing
displayExceptionAnnotation :: a -> String Source #
Render the annotation for display to the user.
default displayExceptionAnnotation :: Show a => a -> String Source #