System.Exit — 프로그램 종료 코드
System.Exit — 프로그램 종료 코드
System.Exit은 프로그램이 어떤 종료 코드로 끝날지를 다루는 모듈이에요. 정상 종료(ExitSuccess)와 비정상 종료(ExitFailure n)를 나타내는 방식, 그리고 현재 프로세스를 지정된 코드로 종료시키는 함수들을 제공해요.
본문
이 모듈이 내보내는 것들은 다음과 같아요.
module System.Exit (
ExitCode(ExitSuccess, ExitFailure), exitWith, exitFailure, exitSuccess
) where
data ExitCode
= ExitSuccess -- 정상적인 종료를 나타냄
| ExitFailure Int -- 종료 코드와 함께 프로그램 실패를 나타냄
코드의 정확한 해석은 운영체제에 따라 달라요. 특히 어떤 값들은 금지될 수 있어요(예: POSIX 호환 시스템에서의 0).
프로그램이 반환할 수 있는 종료 코드들을 정의해요.
instance Eq ExitCode instance Ord ExitCode instance Read ExitCode instance Show ExitCode
exitWith :: ExitCode -> IO a
계산 exitWith code는 프로그램을 종료시키며 code를 프로그램의 호출자에게 돌려줘요. 호출자는 반환 코드를 원하는 대로 해석할 수 있지만, 프로그램은 정상 완료를 뜻하려면 ExitSuccess를, 회복할 수 없는 문제를 만났다는 뜻이려면 ExitFailure n을 반환해야 해요. 값 exitFailure는 exitWith (ExitFailure exitfail)과 같은데, 여기서 exitfail은 구현에 따라 달라져요. exitWith는 I/O 모나드의 오류 처리를 우회하므로 Prelude의 catch로 가로챌 수 없어요.
exitFailure :: IO a
계산 exitFailure는 exitWith (ExitFailure exitfail)과 동등한데, 여기서 exitfail은 구현에 따라 달라져요.
exitSuccess :: IO a
프로그램을 성공적으로 종료시켜요.