2016-10-11 10 views
0

오류가 발생하면 Netbeans가 전체 출력을 엉망으로 만듭니다. 그것은이 incomprehensive 혼란과 같은 출력 모양을 만든다 :Netbeans 8.1 & Java : 오류가 발생했을 때 출력이 엉망이되었습니다.

Pushing elements onto doubleStack 
1.1 2.2 3.3 4.4 5.5 6.6 
Exceptions.FullStackException: Stack is full, cannot push 6.6 
    at domein.Stack.push(Stack.java:37) 
    at StackApplicatie2.testPush(StackApplicatie2.java:40) 
    at StackApplicatie2.testStacks(StackApplicatie2.java:24) 
    at StackApplicatie2.main(StackApplicatie2.java:75) 

Popping elements from doubleStack 
5.5 4.4 3.3 2.2 1.1 

Pushing elements onto integerStack 
1 2 3 4 5 6 7 8 9 10 11 

Popping elements from integerStack 
<etc. …> 
난 그냥 궁금 해서요

이 : 같은 이상한 OUPUT 여부를 줄 넷빈즈 8.1이 정상 아닌 사람이 무엇을 기대의

Pushing elements onto doubleStack 
1.1 2.2 3.3 4.4 5.5 6.6 
Exceptions.FullStackException: Stack is full, cannot push 6.6 

Popping elements from doubleStack 
5.5 4.4 3.3 2.2 1.1 

    at domein.Stack.push(Stack.java:37) 
Pushing elements onto integerStack 
    at StackApplicatie2.testPush(StackApplicatie2.java:40) 
1 2 3 4 5 6 7 8 9 10 11 

    at StackApplicatie2.testStacks(StackApplicatie2.java:24) 
Popping elements from integerStack 
    at StackApplicatie2.main(StackApplicatie2.java:75) 
<etc. …> 

?

답변

0

exception.printStackTrace()을 사용하면 스택 추적이 System.err으로 인쇄되고 사용자의 메시지는 System.out (내 생각 엔)으로 인쇄됩니다. 둘 다 버퍼링 된 스트림이며 해당 플러시가 플러시 될 때 (버퍼 크기에 도달하면 줄 바꿈 등) 출력이 대상에 표시됩니다.

간단한 터미널 응용 프로그램에서 두 스트림 모두 콘솔에 지정되지만 두 스트림을 모두 버퍼링하면 플러시가 인터리브 될 수 있으므로 두 스트림의 출력이 섞일 수 있습니다.

이것은 btw가 Netbeans에만 국한된 것은 아닙니다.

어떤 이유로 든 오류 순서에 예외 스택 추적을 쓰고 싶지 않은 경우 exception.printStackTrace(System.out)을 사용할 수 있습니다. 그러나 그렇게하는 것은 드문 일임을 인식하십시오. 예외는 예외적이어야하며 일반적으로 '표준 산출물'에 들어 가지 않아야합니다.

관련 문제