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