簡體   English   中英

我可以找到NullPointerException的來源嗎?

[英]Can I find where a NullPointerException came from?

當我嘗試以下語句時,

a.do(b.do());

假設我從那一行得到了NullPointerException。

那么,有什么方法可以找到a是否為null,b是否為null?

不,唯一的解決方案是提取內部表達式:

Object o = b.do()
a.do(o);

無論如何,這是一個好主意。

如果您在eclispe或任何標准IDE中調試程序,則可以執行Step Into ,它將首先執行b.do() 如果崩潰,則問題出在b對象上。 如果不是,請從b.do() Step OutStep Into a.do()然后在其中找到問題。

我必須說,盡管Tomasz的方法更安全,並建議使用,因為它也易於閱讀。

對於該語句,a或b為null會導致錯誤。 除了單獨檢查每個對象,您看不到哪個。

另外,不是“保留”關鍵字嗎? 不確定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM