たとえば、次のようなスタックトレースを取得しました。
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
の正確な理由は、スタックトレースの最初の行にあります。その例外の原因に関する詳細については、徐々に下に移動する必要があり、多くの場合、根本原因は近くのどこかにあります。スタックトレースの下部。
しかし、ほとんどの場合、最初の数行から例外の原因を取得することもできます。
したがって、この場合、例外はhandleRequest
メソッドにあり、下に移動すると、それらは前のメソッド(スタックトレースで現在のメソッドの上にあるメソッド)を呼び出したメソッドになります。
通常は上から読む必要があります。したがって、この場合、handleRequest
メソッドのUnixServerJobControllerの66行目にNullPointerExceptionがあります。そのメソッドはSimpleControllerHandlerAdapter.handle
によって呼び出され、DispatcherServlet.doDispatch
などによって呼び出されました。
ただし、この特定のケースでは、スタックトレースの最初のフレームだけが必要な場合があります。 UnixServerJobController
の66行目を見て、nullの可能性があるものを見つけて、それに応じて行動します。
1つの例外が別の例外にラップされる場合があることに注意してください(別の例外にラップされる場合もあります)。この場合、スタックトレースのeachを確認する必要があります。多くの場合、それが根本原因であるため、最も有用な情報を提供する「最もネストされた」例外です。
これ チュートリアルは、問題に光を当て、物事をよりよく理解するのに役立つ場合があります。
問題ごとに、Unix Server Job Controllerクラスの行66でNullポインタ例外が発生しているようです。
このチュートリアルは私にとって非常に有用であることがわかりました https://forums.bukkit.org/threads/how-to-read-stack-traces-and-troubleshoot-your-own-plugins-by-yourself.32457 /