System.Exit
Copyright | (c) The University of Glasgow 2001 |
---|---|
License | BSD-style (see the file libraries/base/LICENSE) |
Maintainer | [email protected] |
Stability | provisional |
Portability | portable |
Safe Haskell | Trustworthy |
Language | Haskell2010 |
Description
Exiting the program.
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
Eq ExitCode | |
Ord ExitCode | |
Defined in GHC.IO.Exception | |
Read ExitCode | |
Show ExitCode | |
Generic ExitCode | |
Exception ExitCode | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception MethodstoException :: ExitCode -> SomeException Source fromException :: SomeException -> Maybe ExitCode Source displayException :: ExitCode -> String Source | |
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))) |
exitWith :: ExitCode -> IO a Source
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 if 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.
exitFailure :: IO a Source
The computation exitFailure
is equivalent to exitWith
(
ExitFailure
exitfail)
, where exitfail is implementation-dependent.
exitSuccess :: IO a Source
The computation exitSuccess
is equivalent to exitWith
ExitSuccess
, It terminates the program successfully.
Write given error message to stderr
and terminate with exitFailure
.
Since: base-4.8.0.0
© 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/System-Exit.html