System.Exit — 프로그램 종료 코드

System.Exit — 프로그램 종료 코드

System.Exit은 프로그램이 어떤 종료 코드로 끝날지를 다루는 모듈이에요. 정상 종료(ExitSuccess)와 비정상 종료(ExitFailure n)를 나타내는 방식, 그리고 현재 프로세스를 지정된 코드로 종료시키는 함수들을 제공해요.

출처: Haskell 2010 언어 리포트

본문

이 모듈이 내보내는 것들은 다음과 같아요.

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을 반환해야 해요. 값 exitFailureexitWith (ExitFailure exitfail)과 같은데, 여기서 exitfail은 구현에 따라 달라져요. exitWith는 I/O 모나드의 오류 처리를 우회하므로 Prelude의 catch로 가로챌 수 없어요.

exitFailure :: IO a

계산 exitFailureexitWith (ExitFailure exitfail)과 동등한데, 여기서 exitfail은 구현에 따라 달라져요.

exitSuccess :: IO a

프로그램을 성공적으로 종료시켜요.

더 알아보기 (Learn more)