Java 스택 추적을 읽고 이해하는 방법은 무엇입니까?
이 질문에 이미 답변이 있습니다.
예를 들어 다음과 같은 스택 추적이 있습니다.
java.lang.NullPointerException
abc.investxa.presentation.controllers.UnixServerJobController.handleRequest(UnixServerJobController.java:66)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
그렇다면이 예외의 근본 원인은 무엇입니까? 스택 추적 doFilter에서 OncePerRequestFilter클래스의 함수에 문제가 있음을 알았습니다 ! 그러나 거기에 중단 점을두면 프로그램이 중단 점에서 멈추지 않습니다.
누구든지 이것에 대해 설명 할 수 있습니까!? 그리고 일반적으로 디버깅을 위해 스택 케이스를 어떻게 사용해야합니까 (아래에서 위로 또는 위에서 아래로 읽음)!
일반적으로 정확한 원인은 Exception스택 추적의 첫 번째 줄에 있으며 해당 예외의 원인에 대한 자세한 내용을 보려면 점차적으로 아래로 이동해야하며 근본 원인은 스택 추적의 맨 아래에서 찾을 수 있습니다. .
그러나 대부분의 경우 처음 몇 줄에서 예외의 원인을 얻을 수도 있습니다.
따라서이 경우 예외는 at handleRequest메서드이고 아래쪽으로 이동하면 이전 메서드를 호출 한 메서드입니다 (스택 추적에서 현재 메서드 위에있는 메서드).
일반적으로 위에서부터 읽어야합니다 handleRequest. 따라서이 경우 메서드 의 UnixServerJobController 66 행에 NullPointerException이 있습니다. 이 메서드는에 의해 SimpleControllerHandlerAdapter.handle호출되었으며 DispatcherServlet.doDispatch등에서 호출되었습니다 .
그러나이 특별한 경우에는 스택 추적의 첫 번째 프레임 만 있으면됩니다. 의 66 행을보고 UnixServerJobControllernull이 될 수있는 것을 찾아 그에 따라 행동하십시오.
때때로 하나의 예외가 다른 예외로 래핑된다는 점에 유의하십시오 (이는 다른 예외로 래핑 될 수 있음). 이 경우 각 스택 추적을 살펴보아야 합니다. 가장 유용한 정보를 제공하는 "가장 중첩 된"예외가 근본 원인이기 때문입니다.
이 튜토리얼은 문제에 대한 정보를 제공하고 상황을 더 잘 이해하는 데 도움이 될 수 있습니다.
문제에 따라 Unix Server Job Controller 클래스의 66 행에 Null Pointer Exception이있는 것 같습니다.
이 튜토리얼이 나에게 매우 유용하다는 것을 알았습니다 https://forums.bukkit.org/threads/how-to-read-stack-traces-and-troubleshoot-your-own-plugins-by-yourself.32457/
참고 URL : https://stackoverflow.com/questions/12688068/how-to-read-and-understand-the-java-stack-trace
'Nice programing' 카테고리의 다른 글
| IntelliJ에서 Java 클래스의 메서드를 재정렬하는 간단한 방법은 무엇입니까? (0) | 2020.11.14 |
|---|---|
| Netbeans에서 Jar 파일을 만드는 방법 (0) | 2020.11.14 |
| Visual Studio 2013의 프로젝트에서 클래스 다이어그램을 생성하는 방법은 무엇입니까? (0) | 2020.11.14 |
| 인터페이스 메서드에 본문이있을 수 있습니까? (0) | 2020.11.14 |
| 파이썬은 적절한 줄 끝을 얻습니다. (0) | 2020.11.14 |