【Java后端】空指针的处理

项目中我们常常遇到空指针异常,而且有的时候代码过长很难判断空指针的具体位置,如果我们逐级判断似乎要拆解代码,那么请问我们是否可以在空指针可能存在的代码域直接try包围,然后捕获空指针异常作处理呢?

try {
            //可能存在空指针异常的代码区域
        } catch (NullPointerException e) {
            throw new ProcessException("所使用的数据不存在!");
        }

 

可以是可以 但是如果出现了空指针的问题,问题排查的时候还是需要对try代码块进行分析,从而确定是哪一个变量出现的空指针。 开发方便了,但是后期维护就可能就复杂了

一般对非基本数据类型操作时,都要先判空,这可以避免大部分空指针。剩下的可以逐个处理,或返回提示给前端,或做其他后备处理。

可以,一般在catch中返回执行失败的结果,避免前台得到程序异常时导致程序无法继续执行。

异常堆栈信息里会有代码的哪一行报空指针啊,一般是NullPointerException的下一行

可以通过spring自带的异常捕获handle去统一处理,包装堆栈信息,通过日志输出

可以了解一下

@ControllerAdvice和
@ExceptionHandler、@ResponseBody注解