Can Java's NullPointerException be changed to report on which variable was null? への 対応として thorbjorn-ravn-andersen さんのコメント:
いいえ、クラス ファイルのデバッグ情報には、これを許可するのに十分な情報が含まれていません。
私の質問は、なぜですか?
Can Java's NullPointerException be changed to report on which variable was null? への 対応として thorbjorn-ravn-andersen さんのコメント:
いいえ、クラス ファイルのデバッグ情報には、これを許可するのに十分な情報が含まれていません。
私の質問は、なぜですか?
実際の例外は特定のバイトコード命令を指しますが、言語ステートメントは、参照される6つの異なるポインターを持つ数十の命令に拡張される場合があります。さらに、ポインターは、いくつかの命令の間、一時ストレージ(バイトコードスタック)に保持されている可能性があるため、特定の変数名との関連付けが失われる可能性があります。
派手なデバッガーは、「障害が発生した」変数を公正に推測できますが、一般的に言えば、失敗したステートメントを指摘するだけで十分です(ただし、失敗は、アクションが延期)。
変数ではなかった可能性があります。たとえば、メソッド呼び出しの結果など、一時的な結果であった可能性があります。NPE が発生するまでには、それは単なる匿名スタック スロットです。
コード内の行番号は、それをトレースするのに十分であるためです。