项目中我们常常遇到空指针异常,而且有的时候代码过长很难判断空指针的具体位置,如果我们逐级判断似乎要拆解代码,那么请问我们是否可以在空指针可能存在的代码域直接try包围,然后捕获空指针异常作处理呢?
try {
//可能存在空指针异常的代码区域
} catch (NullPointerException e) {
throw new ProcessException("所使用的数据不存在!");
}
可以是可以 但是如果出现了空指针的问题,问题排查的时候还是需要对try代码块进行分析,从而确定是哪一个变量出现的空指针。 开发方便了,但是后期维护就可能就复杂了
一般对非基本数据类型操作时,都要先判空,这可以避免大部分空指针。剩下的可以逐个处理,或返回提示给前端,或做其他后备处理。
可以,一般在catch中返回执行失败的结果,避免前台得到程序异常时导致程序无法继续执行。
异常堆栈信息里会有代码的哪一行报空指针啊,一般是NullPointerException的下一行
可以通过spring自带的异常捕获handle去统一处理,包装堆栈信息,通过日志输出
可以了解一下
@ControllerAdvice和
@ExceptionHandler、@ResponseBody注解