|Copyright||(c) The University of Glasgow 2001|
|License||BSD-style (see the file libraries/base/LICENSE)|
Exiting the program.
Defines the exit codes that a program can return.
indicates successful termination;
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).
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
ExitCode is not an
exitWith bypasses the error handling in the
IO monad and cannot be intercepted by
catch from the Prelude. However it is a
SomeException, 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
Note: in GHC,
exitWith should be called from the main program thread in order to exit the process. When called from another thread,
exitWith will throw an
ExitException as normal, but the exception will not cause the process itself to exit.
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).