3 回答

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

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