Write given error message to stderr and terminate with exitFailure.
Modulebase-compat-0.14.1Haskell2010
System.Exit.Compat
- 1 type
- 5 values
- Packagebase-compat-0.14.1
- Exports6
- LanguageHaskell2010
- LicenceMIT
- SourceExit.hs
Defines 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).
Instances8Eq, Ord, Read, Show, Generic, Exception, …
Eq ExitCodeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.ExceptionOrd ExitCodeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.ExceptionRead ExitCodeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.ExceptionShow ExitCodeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.ExceptionGeneric ExitCodeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.ExceptionException ExitCodeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.ExceptionNFData ExitCodeDefined in deepseq-1.5.0.0 · Control.DeepSeqtype Rep ExitCode = D1 ('MetaDataDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.Exception"ExitCode"
"GHC.Internal.IO.Exception"
"ghc-internal"
'False) (C1 ('MetaCons"ExitSuccess"
'PrefixI 'False) U1 :+: C1 ('MetaCons"ExitFailure"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))
The computation exitFailure is equivalent to
exitWith (ExitFailure exitfail),
where exitfail is implementation-dependent.
The computation exitSuccess is equivalent to exitWith ExitSuccess, It terminates the program successfully.
Computation exitWith code throws ExitCode code.
Normally this terminates the program, returning code to the
program's caller.
On program termination, the standard Handles stdout and stderr are flushed automatically; any other buffered Handles 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 an Exception, it 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 ExitCode as normal, but the exception will not cause the process itself to exit.
Write given error message to stderr and terminate with exitFailure.