표준 오류 출력

표준 오류 출력 스트림

이 문서에서는 표준 에러 출력(Standard Error Stream)에 대해서 살펴본다.

표준 오류란

표준 오류(Standard Output)이란 프로그램에서 외부 환경으로 오류 메세지를 출력하는 것을 말한다. 외부 환경은 표준 출력과 동일하게 운영체제(OS)라고 볼 수 있으며, 이러한 연결은 형태와 개수 등이 정해져 있기 때문에 자바에서 임의로 만들거나, 지울 수 없도록 되어 있다. 자바에서 표준 오류 출력 스트림을 이용하기 위해서는 System.err을 사용하도록 되어 있으며, System.err 이란 System 도구 안에 있는 err란 이름의 요소를 의미한다고 볼 수 있다

표준 오류 출력 명령

표준 오류 출력 명령 중 자주 사용되는 것들을 정리하면 다음과 같다.

  • System.err.print(내용) : 표준 오류 출력 통로로 내용을 형태 그대로 출력한다.

  • System.err.println(내용) : 표준 오류 출력 통로로 내용을 형태 그대로 출력한 뒤 개행문자를 출력한다.

  • System.err.printf(형식, 값...) : 표준 오류 출력 통로로 형식과 값을 결합한 뒤 출력한다. C언어의 printf 명령과 유사하다.

결론적으로 표준 출력(System.out)과 동일한 명령을 가지고 있다.

표준 출력과의 차이점 및 주의 사항

표준 출력과 동일한 듯 보이지만 이용 상의 차이점이나 주의 사항에 대해서 살펴본다.

출력 색상

실행 중인 IDE에 따라 다르지만 대부분의 IDE에서는 일반 출력과 오류 출력을 구분하여 보여준다. 디자인 적인 측면이 아니라 오류 메세지를 강조하여 표현하기 위함이다. 윈도우 커맨드 라인이나 리눅스 쉘, JUnit 등 적용되지 않는 경우도 상당하기 때문에 색상을 이용하여 무언가를 하는 것은 올바르지 않은 사용법이다.

표준 출력과 혼용하는 경우

표준 오류 출력은 표준 출력과 혼용하여 사용하지 말아야 한다. 표준 출력과 표준 오류 출력은 각각 다른 통로를 이용하기 때문에 실행 순서와 출력 순서가 동일하다고 보장할 수 없다. 따라서 실행할 때마다 결과가 다른 순서로 나오는 것을 확인할 수 있다.

System.err.println("오류 메세지");
System.out.println("일반 메세지");
System.err.println("오류 메세지");
System.out.println("일반 메세지");

위의 코드를 여러 번 실행하면 문제점을 파악할 수 있다.

Last updated