2015-01-28 1 views
-2

나는 java의 초보자입니다. Java로 회의실 예약 시스템을 구현하려고합니다. 모든 오류 정보를 프롬프트에 인쇄하고 싶습니다.System.err과 java.lang.Error의 차이점

검색 후 System.err.println("error 101")java.lang.Error("error 101") 모두 오류가 발생하여 출력 할 수 있습니다.

따라서 제 질문은 (1) 그 차이점은 무엇입니까? (2) 시스템을 구현할 때 어느 것이 더 효과적입니까?

+0

이들은 완전히 다른 유형입니다. –

답변

1

둘은 서로 관련이 없습니다.

(1) 차이점은 무엇입니까?

System.err은 콘솔에서 실행중인 앱에 대한 콘솔의 표준 오류 스트림에 출력 될 것이다 쓸 수있는 PrintStream입니다.

Error은 오류 클래스이며 프로그램에서 복구 할 수없는 심각한 오류의 경우 Throwable입니다.

(2) 시스템을 구현할 때 어느 것이 더 효과적입니까?

"보다 효과적"이라는 용어는 매우 모호합니다.

정상적인 과정에서 프로그램이 명령 줄 프로그램 인 경우 인 경우 오류 메시지를 System.err으로 출력 할 수 있습니다. Error을 직접 던지거나 서브 클래 싱하지 않을 것입니다. 대신 예외적 인 조건의 경우 Exception 클래스 중 하나를 사용하거나 자신의 클래스를 파생시킬 수 있습니다.

위에 링크 된 설명서와 예외 처리에 대한 자세한 내용은 Java Exceptions Tutorial을 읽어 보시기 바랍니다.

+0

답해 주셔서 감사합니다. 내 회의실 예약 시스템은 명령 줄 프로그램입니다. 당신은 단지'System.err'을 사용하여 에러 메시지를 출력 할 필요가 있다는 것을 의미합니까? 모든 종류의 오류 메시지를 저장하는 오류 클래스를 만들어야한다고 생각합니까? – allenwang

+0

@allenwang : 그건 당신에게 달려 있습니다. –

0

다른 점이 있습니다.

System.err.println 오류 스트림에 메시지를 인쇄하십시오.

java.lang.Error

있는 오류

는 합리적 응용 프로그램이라면 파악하려고 시도해서는 안되는 심각한 문제를 나타내는 Throwable의 서브 클래스입니다. 이러한 오류의 대부분은 비정상적인 조건입니다. ThreadDeath 오류는 "정상적인"조건이지만 대부분의 응용 프로그램이 오류를 잡아서는 안되기 때문에 오류의 하위 클래스이기도합니다.

잡아서는 안되는 예외입니다.

그래서 이러한 생각은 같은 맥락에서 사용할 수 없습니다.