Java에서 stackTrace 및 디버그 예외 인쇄
stackTrace(프랑스어로 call trace)는 java 에서 실행하는 동안 스택의 표현입니다. 프로그램을 엽니다. 예외는 프로그래머가 프로그램을 컴파일할 때 우리 프로그램에서 일반적입니다. 호출 추적을 통해 오류의 원인을 추적할 수 있습니다.public static void main(String[] args) {
press(null);//line 9
}
static void press(int[] a) {
System.out.println("button "+a[0]);//line 12
}
스레드 "main"의 예외 java.lang.NullPointerException
myClass.press(StringCompare.java:12)
myClass.main(StringCompare.java:9)
이 예제는 간단하며 마지막으로 호출된 메서드를 클릭하여 오류가 발생한 위치를 알 수 있습니다. 오류는 12줄에 있으며 null 개체(NullPointerException)에 대한 액세스를 나타냅니다. 존재하는 유일한 객체는 a[0]이므로 null이며 press 메소드가 null 매개 변수를 사용하여 main에서 호출되는 것을 알 수 있습니다.
try / catch의 예
메소드 java.lang.Throwable.printStackTrace() 예외의 시작부터 모양까지 전체 시퀀스를 스택의 내림차순으로 줄로 인쇄합니다. 마지막 행은 첫 번째 누적 메서드인 루트를 나타내고 마지막 행은 오류가 있는 스택의 맨 위를 나타냅니다. 표시가 완료되었기 때문에 선이 빨간색입니다. System.err.
스레드 "main"의 예외 java.lang.IllegalArgumentException : input == null!이 예외가 발생합니다. 프로그램을 실행하여:
at javax.imageio.ImageIO.read(알 수 없는 소스)
at Fenetre.(Fenetre.java:127)
at Test.main(Test.java:9)
Fenetre.java 클래스가 열리고 입력 스트림이 null임을 나타내는 127행에서 원인을 찾을 수 있습니다. 즉, 이미지를 찾을 수 없지만 예외가 발생한 이유는 무엇입니까?
스레드 "main"의 예외 java.lang.IllegalArgumentException: input == null!catch에서 예외 유형을 찾고 getResource 메서드가 file/icone.png에 있는 리소스에 명령적으로 액세스해야 하기 때문에 IOExeption임을 알 수 있습니다. 그렇지 않으면 이미지가 그렇지 않습니다. 액세스할 수 없으면 예외가 발생하고 프로그램이 중지됩니다.
참조
스택 추적이란 무엇이며 애플리케이션 오류를 디버깅하는 데 어떻게 사용할 수 있습니까?
클래스 던지기 가능
Java 예외를 디버그하기 위해 스택 추적을 인쇄하는 방법