mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Sunday, March 04, 2007

Java/자바] main 의 반환값 return 메서드(함수), 탈출코드(에러 레벨) Exit Code


자바 프로그램을 종료하면서 운영체제에 에러 코드를 돌려주는 방법입니다. C언어에서는 return 0; 이나 return 1; 등으로 반환할 수 있지만,

자바의 main (메인 메서드;함수) 은 반환값이 void형이기에 return문으로 값을 돌려 주지 못합니다. 만약 강제로 돌려주면 cannot return a value from method whose result type is void 이런 에러가 납니다. 그렇다고 해서 메인을 "public static int main(String[] args)" 이렇게 정수형으로 고치면, Exception in thread "main" java.lang.NoSuchMethodError: main 이런 에러가 납니다.

자바의 메인 메서드에서는 return문이 아닌, System.exit() 이라는 메서드로 반환값을 돌려주면 됩니다.

에러가 없이 정상적으로 종료되었을 때는
System.exit(0);
이렇게 0을 운영체제에 돌려주고, 에러가 있을 때에는 0이 아닌 값을,
System.exit(1);
이렇게 보통 1을 돌려줍니다.

다음 예제는 알아 보기 쉽게끔 999 라는 값을 돌려줍니다.

메인의 반환 값 (에러 코드; Error Code) 돌려주기 예제

소스 파일명: Example.java
public class Example {
  public static void main(String[] args) {

    System.out.println("탈출 코드 테스트 프로그램");

    System.exit(999);
  }
}


컴파일 및 실행 결과 화면:
D:\Z>javac Example.java && java Example
탈출 코드 테스트 프로그램

D:\Z>
D:\Z>
D:\Z>
D:\Z>echo %errorlevel%
999

D:\Z>


그런데 프로그램이 운영체제에 돌려준 반환값은, 사람의 눈에는 보이지 않습니다.

이것을 보기 위해서는 윈도우2000/XP 의 경우, 도스창에서

echo %errorlevel%

이렇게 하면 됩니다. ERRORLEVEL 이라는 이름의 윈도우 환경변수에, 최근에 실행한 프로그램의 반환값이 항상 자동으로 들어가 있기 때문입니다.



System.exit()이 없을 때의 종료 반환값


System.exit()을 사용하지 않았을 경우, 자바 프로그램은 에러가 났든 아니든, 항상 0을 돌려줍니다.



System.exit() 의 실용적인 예제: ▶▶ Java/자바] 한글 euc-kr (MS949) 파일을, 유니코드(UTF-8)로 변환 프로그램

▶▶ [배치 파일] 프로그램 실행의 성공 여부를 Error Level 로 확인/판단하기: ERRORLEVEL




tag: java
자바 | Java

0 Comments:

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top