GHC.IO.Exception

Copyright (c) The University of Glasgow 2009
License see libraries/base/LICENSE
Maintainer [email protected]
Stability internal
Portability non-portable
Safe Haskell Trustworthy
Language Haskell2010

Description

IO-related Exception types and functions

data BlockedIndefinitelyOnMVar Source

The thread is blocked on an MVar, but there are no other references to the MVar so it can't ever continue.

blockedIndefinitelyOnMVar :: SomeException Source

data BlockedIndefinitelyOnSTM Source

The thread is waiting to retry an STM transaction, but there are no other references to any TVars involved, so it can't ever continue.

blockedIndefinitelyOnSTM :: SomeException Source

data Deadlock Source

There are no runnable threads, so the program is deadlocked. The Deadlock exception is raised in the main thread only.

Constructors

Deadlock
Instances
Instances details
Show Deadlock

Since: base-4.1.0.0

Instance details

Defined in GHC.IO.Exception

Exception Deadlock

Since: base-4.1.0.0

Instance details

Defined in GHC.IO.Exception

data AllocationLimitExceeded Source

This thread has exceeded its allocation limit. See setAllocationCounter and enableAllocationLimit.

Since: base-4.8.0.0

allocationLimitExceeded :: SomeException Source

newtype AssertionFailed Source

assert was applied to False.

Constructors

AssertionFailed String
Instances
Instances details
Show AssertionFailed

Since: base-4.1.0.0

Instance details

Defined in GHC.IO.Exception

Exception AssertionFailed

Since: base-4.1.0.0

Instance details

Defined in GHC.IO.Exception

newtype CompactionFailed Source

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

cannotCompactFunction :: SomeException Source

cannotCompactPinned :: SomeException Source

cannotCompactMutable :: SomeException Source

data SomeAsyncException Source

Superclass for asynchronous exceptions.

Since: base-4.7.0.0

Constructors

forall e.Exception e => SomeAsyncException e

asyncExceptionToException :: Exception e => e -> SomeException Source

Since: base-4.7.0.0

asyncExceptionFromException :: Exception e => SomeException -> Maybe e Source

Since: base-4.7.0.0

data AsyncException Source

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:

  • It is undefined which thread receives this exception. GHC currently throws this to the same thread that receives UserInterrupt, but this may change in the future.
  • The GHC RTS currently can only recover from heap overflow if it detects that an explicit memory limit (set via RTS flags). has been exceeded. Currently, failure to allocate memory from the operating system results in immediate termination of the program.
ThreadKilled

This exception is raised by another thread calling killThread, or by the system if it needs to terminate the thread for some reason.

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).

stackOverflow :: SomeException Source

heapOverflow :: SomeException Source

data ArrayException Source

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.

data ExitCode Source

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
Instances details
Eq ExitCode
Instance details

Defined in GHC.IO.Exception

Ord ExitCode
Instance details

Defined in GHC.IO.Exception

Read ExitCode
Instance details

Defined in GHC.IO.Exception

Show ExitCode
Instance details

Defined in GHC.IO.Exception

Generic ExitCode
Instance details

Defined in GHC.IO.Exception

Associated Types

type Rep ExitCode :: Type -> Type Source

Exception ExitCode

Since: base-4.1.0.0

Instance details

Defined in GHC.IO.Exception

type Rep ExitCode
Instance details

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 Source

The exception thrown when an infinite cycle is detected in fixIO.

Since: base-4.11.0.0

Constructors

FixIOException
Instances
Instances details
Show FixIOException

Since: base-4.11.0.0

Instance details

Defined in GHC.IO.Exception

Exception FixIOException

Since: base-4.11.0.0

Instance details

Defined in GHC.IO.Exception

ioException :: IOException -> IO a Source

ioError :: IOError -> IO a Source

Raise an IOError in the IO monad.

type IOError = IOException Source

The Haskell 2010 type for exceptions in the IO monad. Any I/O operation may raise an IOError 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 Source

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.

Instances
Instances details
Eq IOException

Since: base-4.1.0.0

Instance details

Defined in GHC.IO.Exception

Show IOException

Since: base-4.1.0.0

Instance details

Defined in GHC.IO.Exception

Exception IOException

Since: base-4.1.0.0

Instance details

Defined in GHC.IO.Exception

data IOErrorType Source

An abstract type that contains a value for each variant of IOError.

Instances
Instances details
Eq IOErrorType

Since: base-4.1.0.0

Instance details

Defined in GHC.IO.Exception

Show IOErrorType

Since: base-4.1.0.0

Instance details

Defined in GHC.IO.Exception

userError :: String -> IOError Source

Construct an IOError 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 Source

unsupportedOperation :: IOError Source

untangle :: Addr# -> String -> String Source

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/base-4.14.1.0/GHC-IO-Exception.html