[Haskell-cafe] Unexpected results from ExitCode
Dean Herington
heringtonlacey at mindspring.com
Thu Nov 4 00:16:56 EDT 2010
At 8:45 PM -0700 11/3/10, Peter Schmitz wrote:
>I have a program (test.hs):
>
>> module Main (main) where
>> import System.Exit
>> main :: IO ExitCode
>> main = do
>> return (ExitFailure 1)
>
>
>In another program, I invoke it via 'system':
>
>> exitCode <- system ".\\test.exe"
>> case (exitCode) of
>> ExitFailure failCnt -> do
>> putStrLn $ "-- Fail count is: " ++ show failCnt
>> exitFailure
>> ExitSuccess -> do
>> putStrLn $ "-- OK."
>> exitSuccess
>
>
>but it always gets ExitSuccess (not ExitFailure failCnt as I expected).
>(I am running under Windows.)
>
>My other use of system (such as with ghc commands) works okay,
>sometimes getting success, sometimes failure, as expected.
>
>Any suggestions much appreciated.
>Thanks,
>-- Peter
The value returned by `main` is always discarded. You need to use `exitWith`:
main = exitWith (ExitFailure 1)
More information about the Haskell-Cafe
mailing list