The following message went to Bulat Ziganshin alone. So here it is for the mailing list. Sorry.
Begin forwarded message: On Wed, 27 Jan 2010 12:43:13 +0300 Bulat Ziganshin <[email protected]> wrote: > > exitWith throws the ExitCode when it is called. This leads to the > > shutdown of the program, if it isn't caught. Just like ExitException. > > > This isn't documented. > > i've googled for "exitWith throws the ExitCode" and it pointed me to > the exitWith docs: "Computation exitWith code throws ExitException code." This is the source code of exitWith: -------------------------snip----------------------------- -- --------------------------------------------------------------------------- -- exitWith -- | Computation 'exitWith' @code@ throws 'ExitException' @c...@. -- Normally this terminates the program, returning @code@ to the -- program's caller. Before the program terminates, any open or -- semi-closed handles are first closed. -- -- 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 'ExitException' 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 an 'Exception', and can -- be caught using the functions of "Control.Exception". This means -- that cleanup computations added with 'Control.Exception.bracket' -- (from "Control.Exception") are also executed properly on 'exitWith'. #ifndef __NHC__ exitWith :: ExitCode -> IO a exitWith ExitSuccess = throwIO ExitSuccess exitWith code@(ExitFailure n) | n /= 0 = throwIO code #ifdef __GLASGOW_HASKELL__ | otherwise = ioError (IOError Nothing InvalidArgument "exitWith" "ExitFailure 0" Nothing) #endif #endif /* ! __NHC__ */ -------------------------snip----------------------------- As you can see, it throws the ExitCode, not an ExitException. The documentation is faulty. Cheers, Volker -- Volker Wysk <[email protected]> -- Volker Wysk <[email protected]> _______________________________________________ Glasgow-haskell-users mailing list [email protected] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
