在日常代碼中免不了要try catch
切忌用try catch 去try 整個方法。
在對象操作之前盡量寫上if 空判斷。
反例:
public void send(){
try{
代碼1:獲取對象
代碼2:操作代碼1
代碼3:操作代碼2
代碼4:操作代碼3
} catch(Exception e){
log.error("異常信息:,{}",e.getMessage());
// 這里會打一個null 誤以為沒有抓到錯誤信息。其實是你某一條代碼中出現了空對象 。進行了對象操作。
//如果在代碼 2,3,4任何一個地方出現一個空對象并不進行空處理。就會出來這樣的情況
}
}
正例:
public Object send(){
代碼1:獲取對象
if(代碼1 == null ){
代碼1 = new 代碼1();
}
代碼2:操作代碼1
代碼3:操作代碼2
? ?try{
代碼4:操作代碼3
retrun 代碼4;
} catch(Exception e){
log.error("代碼4異常:,{}",e.getMessage());
}
return null;
}
在try catch 的時候 。盡量的縮小范圍。好定位問題。對象一定要做空判斷 。
不要一上來就全部try .
這種排錯。直接把try catch 去掉。直接讓錯誤拋控制臺。就知道是哪一行了。
再改成代碼 再補上try catch 加上日志記錄就行了。?