in JavaはNullPointerException
、特定のコード行で発生したことのみを報告しているようです。コード行で複数の変数が使用されている場合、その例外を変更して、どの変数が null であったかを示すことは可能ですか?
質問する
241 次
2 に答える
1
いいえ。NullPointerException は、常に変数/識別子が原因であるとは限りませんnull
。例throw new NullPointerException()
とthrow null
. よくあることですが、厳密には必須ではありません。
ほとんどの場合、NPE の原因は明らかです。そうでない場合は、1 行のコードで多くのことが行われている可能性があります。
次の使用例を検討してください。
foo.doWork(bar1, bar2, bar3);
foo
ここで、それが「null」であることは明らかです。
別のケース:
foo.doWork(bar.get(), bar2.get())
ここではfoo
、 、bar
、またはの可能性がありますbar2
。
要点は、この情報とブレークポイントがあれば、何がnull
. さらに悪い場合は、静的コード アナライザーなどを使用FindBugs
すると、いくつかのヒントが得られる可能性があります。
于 2012-09-25T22:16:57.740 に答える