3 回答

TA貢獻1793條經(jīng)驗 獲得超6個贊
空指針異常產(chǎn)生的主要原因如下:itjob網(wǎng)上有例子,
(1)當一個對象不存在時又調(diào)用其方法會產(chǎn)生異常obj.method() // obj對象不存在
(2)當訪問或修改一個對象不存在的字段時會產(chǎn)生異常obj.method() // method方法不存在
(3)字符串變量未初始化;
(4)接口類型的對象沒有用具體的類初始化,比如:
List lt;會報錯
List lt = new ArrayList();則不會報錯了
當一個對象的值為空時,你沒有判斷為空的情況。你可以試著把下面的代碼前加一行代碼:
if(rb!=null && rb!="")
改成:
if(rb==null);
if(rb!==null&&rb!="") 或者if((“”).equals(rb))
空指針的解決辦法:
重點關(guān)注報錯發(fā)生的所在行,通過空指針異常產(chǎn)生的兩條主要原因診斷具體的錯誤。同時為了避免空指針的發(fā)生,最好在做判斷處理時將“null”或者空值放于設(shè)定的值之前。

TA貢獻1856條經(jīng)驗 獲得超5個贊
做檢查,發(fā)現(xiàn)是null后拋出空指針異常
這樣做,原因有二:
你自己捕捉異常,可以給使用者增加一些自定義的異常信息。幫助它盡快找到錯誤并修正
如果你不捕捉異常,異常可能會一直拋出,最后會拋到頁面上。這對你的代碼的人性化、嚴密性都會大有影響。
添加回答
舉報