Haskell Hierarchical Libraries (base package)ContentsIndex
System.Exit
Portability portable
Stability provisional
Maintainer libraries@haskell.org
Description
Exiting the program.
Synopsis
data ExitCode
= ExitSuccess
| ExitFailure Int
exitWith :: ExitCode -> IO a
exitFailure :: IO a
Documentation
data ExitCode
Constructors
ExitSuccessindicates successful termination;
ExitFailure Intindicates 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
Eq ExitCode
Ord ExitCode
Read ExitCode
Show ExitCode
exitWith :: ExitCode -> IO a

Computation exitWith code throws ExitException code. Normally this terminates the program, returning code to the program's caller. Before the program terminates, any open or semi-closed handles are first closed.

A program that fails in any other way is treated as if it had called exitFailure. A program that terminates successfully without calling exitWith explicitly is treated as it it had called exitWith ExitSuccess.

As an ExitException is not an IOError, exitWith bypasses the error handling in the IO monad and cannot be intercepted by catch from the Prelude. However it is an Exception, and can be caught using the functions of Control.Exception. This means that cleanup computations added with bracket (from Control.Exception) are also executed properly on exitWith.

exitFailure :: IO a
The computation exitFailure is equivalent to exitWith (ExitFailure exitfail), where exitfail is implementation-dependent.
Produced by Haddock version 0.6