3

in JavaはNullPointerException、特定のコード行で発生したことのみを報告しているようです。コード行で複数の変数が使用されている場合、その例外を変更して、どの変数が null であったかを示すことは可能ですか?

4

2 に答える 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 に答える