Description
Exiting the program.
DocumentationDefines the exit codes that a program can return.
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).
exitWith :: ExitCode -> IO aSource
Computation exitWith
code
throws ExitCode
code
. Normally this terminates the program, returning code
to the program's caller.
On program termination, the standard Handle
s stdout
and stderr
are flushed automatically; any other buffered Handle
s need to be flushed manually, otherwise the buffered data will be discarded.
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 ExitCode
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 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 exitWith
.
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.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4