在日常代码中免不了要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 加上日志记录就行了。