1

프로그램에서 IndexOutOfBoundsException이 발생할 수 있다고 가정합니다. 나는 다음과 같은 방법으로 처리하고 있습니다 :try {} catch() {} 블록을 사용하여 자세한 오류 메시지를 표시하는 방법

try{ 
//throws an IndexOutOfBoundsException during runtime 
}catch(IndexOutOfBoundsException ex){ 
System.err.println(ex); 
} 

이는 java.lang.IndexOutOfBoundsException를 표시합니다. 그러나 우리가 오류를 처리하지 않을 때 Java가 우리에게 제공하는 것과 같은 (lineNumber, fileName 등) 자세한 오류 메시지 (프로그램을 종료하지는 않음)를 표시하여 프로그램을 종료하고 싶습니다. 콘솔 출력이 어디에 당신이 환경에서 실행하는 경우

try { 
    int[] x = new int[1]; 
    x[2] = 5; 
} catch (IndexOutOfBoundsException ex) { 
    ex.printStackTrace(); 
} 
System.err.println("Program completed successfully"); 

Demo.

:

+2

사용 ex.printStackTrace()가 –

답변

1

자바에서는 예외 객체에 printStackTrace을 사용하여 Java에서 인쇄 한 스택 추적을 얻을 수 있습니다. 최소한의 경우 :

try { 
    // Throw an IndexOutOfBoundsException 
} catch (IndexOutOfBoundsException ex) { 
    ex.printStackTrace(); 
} 

이렇게하면 스택 추적이 System.err으로 인쇄됩니다. 인쇄 스트림이나 심지어 System.out까지 전달하여 특정 스트림으로 인쇄 할 수도 있습니다. 당신이 자바 로거를 사용하는 경우

또한, 당신은 사용할 수 있습니다

logger.log(<LOG_LEVEL>, <LOG_MESSAGE>, ex); 

예외를 기록 할 수 있습니다. 자세한 내용은 다음을 참조하십시오. https://docs.oracle.com/javase/7/docs/api/java/util/logging/Logger.html

-1

당신은 예외를 인쇄

ex.GetMessage() 

감사

+0

가) 나는 방법은 ex.getMessage (해야한다 생각 을 "기호를 찾을 수 없습니다"라고하지만, 여전히 오류에 대한 자세한 내용은 알 수 없습니다. 사실 나는 전혀 오류 메시지가 나타나지 않습니다 :/ –

+0

이것은 사용자 질문에 대답하지 않습니다. –

2

사용 ex.printStackTrace() 방법을 사용할 수 있습니다 바람직하지 않은 경우으로 전화및 요소를 프로그램의 사용자 인터페이스와 일치하는 방식으로 표시합니다.

+0

이것은 매우 도움이되는 동생이었다 :). 그러나 이것은 너무 많은 정보를 출력한다. 나는 하나의 자바가주는 것과 같은 오류 메시지를 원한다. java.lang.ArrayIndexOutOfBoundsException : sth.main에서 6 \t (sth.java:15) sun.reflect.NativeMethodAccessorImpl.invoke0 (기본 방법)에서 \t sun.reflect.NativeMethodAccessorImpl.invoke에서 \t (알 수없는 소스)에 edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand sun.reflect.DelegatingMethodAccessorImpl.invoke (알 소스)에 java.lang.reflect.Method.invoke \t (알 소스) \t (AT \t JavacCompiler.java:266) –

+0

위의 행을 표시하는 방법을 알아 냈습니다. :디 –

0

내 선생님 한 분에게서 받으세요. 나 같은 다른 초보자에게 도움이 될 수 있습니다. (이/어떤 HW/과제의 일부가 아닌 등. 호기심.)

public class ExceptionDemo{ 
public static void main(String[] args){ 
    int[] array = new int[2]; 
    try { 
     System.out.println(array[100]);//non-existent 
    } catch (IndexOutOfBoundsException ex){ 
     StackTraceElement[] e = ex.getStackTrace(); 
     System.err.println("Got error= " + ex + "\n"+ 
          "in file "+e[0].getFileName() +"\n"+ 
          "in class "+e[0].getClassName() +"\n"+ 
          "in method "+e[0].getMethodName() +"\n"+ 
          "in line "+e[0].getLineNumber()); 
     System.err.println("Full trace= "); 
     ex.printStackTrace(System.err); 
    } 
    System.out.println("As Salamu Alaikum"); 
    } 
} 
관련 문제