stackTraceを出力し、Javaで例外をデバッグします
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
at myClass.press(StringCompare.java:12)
at myClass.main(StringCompare.java:9)
この例は単純で、最後に呼び出されたメソッドをクリックすることでエラーが発生した場所がわかります。エラーは 12 行目にあり、null オブジェクト (NullPointerException) へのアクセスを示します。存在する唯一のオブジェクトは a[0] なので null であり、main で press メソッドが null パラメータで呼び出されていることがわかります。
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 であることがわかります。アクセスできない場合、例外がスローされ、プログラムは停止します.
参照
スタックトレースとは何か、またそれを使用してアプリケーションエラーをデバッグする方法?
Class Throwable