Copyright | (c) The University of Glasgow 2009 |
---|---|
License | see libraries/base/LICENSE |
Maintainer | libraries@haskell.org |
Stability | internal |
Portability | non-portable |
Safe Haskell | Trustworthy |
Language | Haskell2010 |
GHC.IO.Exception
Description
IO-related Exception types and functions
Synopsis
- data BlockedIndefinitelyOnMVar = BlockedIndefinitelyOnMVar
- blockedIndefinitelyOnMVar :: SomeException
- data BlockedIndefinitelyOnSTM = BlockedIndefinitelyOnSTM
- blockedIndefinitelyOnSTM :: SomeException
- data Deadlock = Deadlock
- data AllocationLimitExceeded = AllocationLimitExceeded
- allocationLimitExceeded :: SomeException
- newtype AssertionFailed = AssertionFailed String
- newtype CompactionFailed = CompactionFailed String
- cannotCompactFunction :: SomeException
- cannotCompactPinned :: SomeException
- cannotCompactMutable :: SomeException
- data SomeAsyncException = forall e.Exception e => SomeAsyncException e
- asyncExceptionToException :: Exception e => e -> SomeException
- asyncExceptionFromException :: Exception e => SomeException -> Maybe e
- data AsyncException
- stackOverflow :: SomeException
- heapOverflow :: SomeException
- data ArrayException
- data ExitCode
- data FixIOException = FixIOException
- ioException :: IOException -> IO a
- ioError :: IOError -> IO a
- type IOError = IOException
- data IOException = IOError {}
- data IOErrorType
- userError :: String -> IOError
- assertError :: (?callStack :: CallStack) => Bool -> a -> a
- unsupportedOperation :: IOError
- untangle :: Addr# -> String -> String
Documentation
data BlockedIndefinitelyOnMVar #
The thread is blocked on an MVar
, but there are no other references
to the MVar
so it can't ever continue.
Constructors
BlockedIndefinitelyOnMVar |
Instances
Exception BlockedIndefinitelyOnMVar # | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception | |
Show BlockedIndefinitelyOnMVar # | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception Methods showsPrec :: Int -> BlockedIndefinitelyOnMVar -> ShowS # show :: BlockedIndefinitelyOnMVar -> String # showList :: [BlockedIndefinitelyOnMVar] -> ShowS # |
data BlockedIndefinitelyOnSTM #
The thread is waiting to retry an STM transaction, but there are no
other references to any TVar
s involved, so it can't ever continue.
Constructors
BlockedIndefinitelyOnSTM |
Instances
Exception BlockedIndefinitelyOnSTM # | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception | |
Show BlockedIndefinitelyOnSTM # | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception Methods showsPrec :: Int -> BlockedIndefinitelyOnSTM -> ShowS # show :: BlockedIndefinitelyOnSTM -> String # showList :: [BlockedIndefinitelyOnSTM] -> ShowS # |
There are no runnable threads, so the program is deadlocked.
The Deadlock
exception is raised in the main thread only.
Constructors
Deadlock |
Instances
Exception Deadlock # | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception Methods toException :: Deadlock -> SomeException # fromException :: SomeException -> Maybe Deadlock # displayException :: Deadlock -> String # | |
Show Deadlock # | Since: base-4.1.0.0 |
data AllocationLimitExceeded #
This thread has exceeded its allocation limit. See
setAllocationCounter
and
enableAllocationLimit
.
Since: base-4.8.0.0
Constructors
AllocationLimitExceeded |
Instances
Exception AllocationLimitExceeded # | Since: base-4.8.0.0 |
Defined in GHC.IO.Exception | |
Show AllocationLimitExceeded # | Since: base-4.7.1.0 |
Defined in GHC.IO.Exception Methods showsPrec :: Int -> AllocationLimitExceeded -> ShowS # show :: AllocationLimitExceeded -> String # showList :: [AllocationLimitExceeded] -> ShowS # |
newtype AssertionFailed #
Constructors
AssertionFailed String |
Instances
Exception AssertionFailed # | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception Methods toException :: AssertionFailed -> SomeException # | |
Show AssertionFailed # | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception Methods showsPrec :: Int -> AssertionFailed -> ShowS # show :: AssertionFailed -> String # showList :: [AssertionFailed] -> ShowS # |
newtype CompactionFailed #
Compaction found an object that cannot be compacted. Functions
cannot be compacted, nor can mutable objects or pinned objects.
See compact
.
Since: base-4.10.0.0
Constructors
CompactionFailed String |
Instances
Exception CompactionFailed # | Since: base-4.10.0.0 |
Defined in GHC.IO.Exception Methods toException :: CompactionFailed -> SomeException # | |
Show CompactionFailed # | Since: base-4.10.0.0 |
Defined in GHC.IO.Exception Methods showsPrec :: Int -> CompactionFailed -> ShowS # show :: CompactionFailed -> String # showList :: [CompactionFailed] -> ShowS # |
data SomeAsyncException #
Superclass for asynchronous exceptions.
Since: base-4.7.0.0
Constructors
forall e.Exception e => SomeAsyncException e |
Instances
Exception SomeAsyncException # | Since: base-4.7.0.0 |
Defined in GHC.IO.Exception Methods toException :: SomeAsyncException -> SomeException # fromException :: SomeException -> Maybe SomeAsyncException # | |
Show SomeAsyncException # | Since: base-4.7.0.0 |
Defined in GHC.IO.Exception Methods showsPrec :: Int -> SomeAsyncException -> ShowS # show :: SomeAsyncException -> String # showList :: [SomeAsyncException] -> ShowS # |
asyncExceptionToException :: Exception e => e -> SomeException #
Since: base-4.7.0.0
asyncExceptionFromException :: Exception e => SomeException -> Maybe e #
Since: base-4.7.0.0
data AsyncException #
Asynchronous exceptions.
Constructors
StackOverflow | The current thread's stack exceeded its limit. Since an exception has been raised, the thread's stack will certainly be below its limit again, but the programmer should take remedial action immediately. |
HeapOverflow | The program's heap is reaching its limit, and the program should take action to reduce the amount of live data it has. Notes:
|
ThreadKilled | This exception is raised by another thread
calling |
UserInterrupt | This exception is raised by default in the main thread of the program when the user requests to terminate the program via the usual mechanism(s) (e.g. Control-C in the console). |
Instances
data ArrayException #
Exceptions generated by array operations
Constructors
IndexOutOfBounds String | An attempt was made to index an array outside its declared bounds. |
UndefinedElement String | An attempt was made to evaluate an element of an array that had not been initialized. |
Instances
Defines the exit codes that a program can return.
Constructors
ExitSuccess | indicates successful termination; |
ExitFailure Int | indicates program failure with an exit code. The exact interpretation of the code is operating-system dependent. In particular, some values may be prohibited (e.g. 0 on a POSIX-compliant system). |
Instances
Exception ExitCode # | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception Methods toException :: ExitCode -> SomeException # fromException :: SomeException -> Maybe ExitCode # displayException :: ExitCode -> String # | |
Generic ExitCode # | |
Read ExitCode # | |
Show ExitCode # | |
Eq ExitCode # | |
Ord ExitCode # | |
Defined in GHC.IO.Exception | |
type Rep ExitCode # | |
Defined in GHC.IO.Exception type Rep ExitCode = D1 ('MetaData "ExitCode" "GHC.IO.Exception" "base" 'False) (C1 ('MetaCons "ExitSuccess" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ExitFailure" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))) |
data FixIOException #
The exception thrown when an infinite cycle is detected in
fixIO
.
Since: base-4.11.0.0
Constructors
FixIOException |
Instances
Exception FixIOException # | Since: base-4.11.0.0 |
Defined in GHC.IO.Exception Methods toException :: FixIOException -> SomeException # | |
Show FixIOException # | Since: base-4.11.0.0 |
Defined in GHC.IO.Exception Methods showsPrec :: Int -> FixIOException -> ShowS # show :: FixIOException -> String # showList :: [FixIOException] -> ShowS # |
ioException :: IOException -> IO a #
type IOError = IOException #
The Haskell 2010 type for exceptions in the IO
monad.
Any I/O operation may raise an IOException
instead of returning a result.
For a more general type of exception, including also those that arise
in pure code, see Exception
.
In Haskell 2010, this is an opaque type.
data IOException #
Exceptions that occur in the IO
monad.
An IOException
records a more specific error type, a descriptive
string and maybe the handle that was used when the error was
flagged.
Constructors
IOError | |
Fields
|
Instances
Exception IOException # | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception Methods toException :: IOException -> SomeException # fromException :: SomeException -> Maybe IOException # displayException :: IOException -> String # | |
Show IOException # | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception Methods showsPrec :: Int -> IOException -> ShowS # show :: IOException -> String # showList :: [IOException] -> ShowS # | |
Eq IOException # | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception Methods (==) :: IOException -> IOException -> Bool Source # (/=) :: IOException -> IOException -> Bool Source # |
data IOErrorType #
An abstract type that contains a value for each variant of IOException
.
Constructors
Instances
Show IOErrorType # | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception Methods showsPrec :: Int -> IOErrorType -> ShowS # show :: IOErrorType -> String # showList :: [IOErrorType] -> ShowS # | |
Eq IOErrorType # | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception Methods (==) :: IOErrorType -> IOErrorType -> Bool Source # (/=) :: IOErrorType -> IOErrorType -> Bool Source # |
userError :: String -> IOError #
Construct an IOException
value with a string describing the error.
The fail
method of the IO
instance of the Monad
class raises a
userError
, thus:
instance Monad IO where ... fail s = ioError (userError s)
assertError :: (?callStack :: CallStack) => Bool -> a -> a #