relude-1.2.2.2: Safe, performant, user-friendly and lightweight Haskell Standard Library
Copyright(c) 2016 Stephen Diehl
(c) 2016-2018 Serokell
(c) 2018-2023 Kowainik
LicenseMIT
MaintainerKowainik <xrom.xkov@gmail.com>
StabilityStable
PortabilityPortable
Safe HaskellSafe
LanguageHaskell2010

Relude.Exception

Contents

Description

Re-exports most useful functionality from the Control.Exception module. Also provides some convenient utilities to throw and handle exceptions.

Synopsis

Control.Exception reexports

class (Typeable e, Show e) => Exception e where #

Minimal complete definition

Nothing

Instances

Instances details
Exception Timeout 
Instance details

Defined in System.Timeout

Methods

toException :: Timeout -> SomeException #

fromException :: SomeException -> Maybe Timeout #

displayException :: Timeout -> String #

backtraceDesired :: Timeout -> Bool #

Exception SizeOverflowException 
Instance details

Defined in Data.ByteString.Internal.Type

Methods

toException :: SizeOverflowException -> SomeException #

fromException :: SomeException -> Maybe SizeOverflowException #

displayException :: SizeOverflowException -> String #

backtraceDesired :: SizeOverflowException -> Bool #

Exception Void 
Instance details

Defined in GHC.Internal.Exception.Type

Exception ErrorCall 
Instance details

Defined in GHC.Internal.Exception

Methods

toException :: ErrorCall -> SomeException #

fromException :: SomeException -> Maybe ErrorCall #

displayException :: ErrorCall -> String #

backtraceDesired :: ErrorCall -> Bool #

Exception ArithException 
Instance details

Defined in GHC.Internal.Exception.Type

Methods

toException :: ArithException -> SomeException #

fromException :: SomeException -> Maybe ArithException #

displayException :: ArithException -> String #

backtraceDesired :: ArithException -> Bool #

Exception SomeException 
Instance details

Defined in GHC.Internal.Exception.Type

Exception AllocationLimitExceeded 
Instance details

Defined in GHC.Internal.IO.Exception

Methods

toException :: AllocationLimitExceeded -> SomeException #

fromException :: SomeException -> Maybe AllocationLimitExceeded #

displayException :: AllocationLimitExceeded -> String #

backtraceDesired :: AllocationLimitExceeded -> Bool #

Exception ArrayException 
Instance details

Defined in GHC.Internal.IO.Exception

Methods

toException :: ArrayException -> SomeException #

fromException :: SomeException -> Maybe ArrayException #

displayException :: ArrayException -> String #

backtraceDesired :: ArrayException -> Bool #

Exception AssertionFailed 
Instance details

Defined in GHC.Internal.IO.Exception

Methods

toException :: AssertionFailed -> SomeException #

fromException :: SomeException -> Maybe AssertionFailed #

displayException :: AssertionFailed -> String #

backtraceDesired :: AssertionFailed -> Bool #

Exception AsyncException 
Instance details

Defined in GHC.Internal.IO.Exception

Methods

toException :: AsyncException -> SomeException #

fromException :: SomeException -> Maybe AsyncException #

displayException :: AsyncException -> String #

backtraceDesired :: AsyncException -> Bool #

Exception BlockedIndefinitelyOnMVar 
Instance details

Defined in GHC.Internal.IO.Exception

Methods

toException :: BlockedIndefinitelyOnMVar -> SomeException #

fromException :: SomeException -> Maybe BlockedIndefinitelyOnMVar #

displayException :: BlockedIndefinitelyOnMVar -> String #

backtraceDesired :: BlockedIndefinitelyOnMVar -> Bool #

Exception BlockedIndefinitelyOnSTM 
Instance details

Defined in GHC.Internal.IO.Exception

Methods

toException :: BlockedIndefinitelyOnSTM -> SomeException #

fromException :: SomeException -> Maybe BlockedIndefinitelyOnSTM #

displayException :: BlockedIndefinitelyOnSTM -> String #

backtraceDesired :: BlockedIndefinitelyOnSTM -> Bool #

Exception CompactionFailed 
Instance details

Defined in GHC.Internal.IO.Exception

Methods

toException :: CompactionFailed -> SomeException #

fromException :: SomeException -> Maybe CompactionFailed #

displayException :: CompactionFailed -> String #

backtraceDesired :: CompactionFailed -> Bool #

Exception Deadlock 
Instance details

Defined in GHC.Internal.IO.Exception

Methods

toException :: Deadlock -> SomeException #

fromException :: SomeException -> Maybe Deadlock #

displayException :: Deadlock -> String #

backtraceDesired :: Deadlock -> Bool #

Exception ExitCode 
Instance details

Defined in GHC.Internal.IO.Exception

Methods

toException :: ExitCode -> SomeException #

fromException :: SomeException -> Maybe ExitCode #

displayException :: ExitCode -> String #

backtraceDesired :: ExitCode -> Bool #

Exception FixIOException 
Instance details

Defined in GHC.Internal.IO.Exception

Methods

toException :: FixIOException -> SomeException #

fromException :: SomeException -> Maybe FixIOException #

displayException :: FixIOException -> String #

backtraceDesired :: FixIOException -> Bool #

Exception IOException 
Instance details

Defined in GHC.Internal.IO.Exception

Methods

toException :: IOException -> SomeException #

fromException :: SomeException -> Maybe IOException #

displayException :: IOException -> String #

backtraceDesired :: IOException -> Bool #

Exception SomeAsyncException 
Instance details

Defined in GHC.Internal.IO.Exception

Methods

toException :: SomeAsyncException -> SomeException #

fromException :: SomeException -> Maybe SomeAsyncException #

displayException :: SomeAsyncException -> String #

backtraceDesired :: SomeAsyncException -> Bool #

Exception Bug Source # 
Instance details

Defined in Relude.Exception

Exception UnicodeException 
Instance details

Defined in Data.Text.Encoding.Error

Exception a => Exception (ExceptionWithContext a) 
Instance details

Defined in GHC.Internal.Exception.Type

Methods

toException :: ExceptionWithContext a -> SomeException #

fromException :: SomeException -> Maybe (ExceptionWithContext a) #

displayException :: ExceptionWithContext a -> String #

backtraceDesired :: ExceptionWithContext a -> Bool #

Exception e => Exception (NoBacktrace e) 
Instance details

Defined in GHC.Internal.Exception.Type

Methods

toException :: NoBacktrace e -> SomeException #

fromException :: SomeException -> Maybe (NoBacktrace e) #

displayException :: NoBacktrace e -> String #

backtraceDesired :: NoBacktrace e -> Bool #

Bugs

data Bug Source #

Type that represents exceptions used in cases when a particular codepath is not meant to be ever executed, but happens to be executed anyway.

Instances

Instances details
Exception Bug Source # 
Instance details

Defined in Relude.Exception

Show Bug Source # 
Instance details

Defined in Relude.Exception

Methods

showsPrec :: Int -> Bug -> ShowS

show :: Bug -> String

showList :: [Bug] -> ShowS

bug :: (HasCallStack, Exception e) => e -> a Source #

Generate a pure value which, when forced, will synchronously throw the exception wrapped into Bug data type.

pattern Exc :: Exception e => e -> SomeException Source #

Pattern synonym to easy pattern matching on exceptions. So instead of writing something like this:

isNonCriticalExc :: SomeException -> Bool
isNonCriticalExc e
    | Just (_ :: NodeAttackedError) <- fromException e = True
    | Just DialogUnexpected{} <- fromException e = True
    | otherwise = False

you can use Exc pattern synonym:

isNonCriticalExc :: SomeException -> Bool
isNonCriticalExc = case
    Exc (_ :: NodeAttackedError) -> True  -- matching all exceptions of type NodeAttackedError
    Exc DialogUnexpected{} -> True
    _ -> False

This pattern is bidirectional. You can use Exc e instead of toException e.