Safe Haskell | None |
---|---|
Language | Haskell2010 |
- exitWith :: ExitCode -> IO a
- exitWithFailure :: NotZero Int -> IO a
- exitWithFailure1 :: IO a
- exitWithSuccess :: IO a
- type ExitCodeM f = NotZeroOrT Int f ()
- exitCodeM :: f (Number Int) -> ExitCodeM f
- createWaitProcessM :: CreateProcess -> ExitCodeM IO
- createMakeWaitProcessM :: CreateProcess -> ExitCodeM IO
- createWaitProcesses :: Foldable t => t CreateProcess -> ExitCodeM IO
- createMakeWaitProcesses :: Foldable t => t CreateProcess -> ExitCodeM IO
- exit :: ExitCodeM IO -> IO ()
- createWaitProcessesExit :: Foldable t => t CreateProcess -> IO ()
- createMakeWaitProcessesExit :: Foldable t => t CreateProcess -> IO ()
Exit
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 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.
see 'System.Exit.exitWith.
exitWithFailure1 :: IO a Source #
The computation exitWithFailure1
is equivalent to
exitWith
(
ExitFailure
exitfail)
,
where exitfail is implementation-dependent.
see 'System.Exit.exitWithFailure.
exitWithSuccess :: IO a Source #
The computation exitWithSuccess
is equivalent to
exitWith
ExitSuccess
, It terminates the program
successfully.
see 'System.Exit.exitWithSuccess.
type ExitCodeM f = NotZeroOrT Int f () Source #
createWaitProcesses :: Foldable t => t CreateProcess -> ExitCodeM IO Source #
createMakeWaitProcesses :: Foldable t => t CreateProcess -> ExitCodeM IO Source #
createWaitProcessesExit :: Foldable t => t CreateProcess -> IO () Source #
createMakeWaitProcessesExit :: Foldable t => t CreateProcess -> IO () Source #