应用空指针处理心得

对于应用系统最头疼的莫过于要写很多的非空处理,经过一些资料研究,对于空指针的处理,做如下总结(SSM)():

根据部分博客及框架源码分析得出的结论

总结:具体情况具体分析

1.有的地方允许传空,也允许返回空,这种情况下不做非空处理

2.系统安全性大于冗余的非空处理

3.controller层的入参是比做非空处理的,为了方便处理,建议使用注解的方式@NotNull

4.通过约定,避免不必要的非空判断

controller对service出参进行判断

service对入参做非空处理,减免controller大量冗余(下层判断,上层省去)

dao层不做非空判断,service调用dao时做非空处理

非空处理,包括无需判断,入参非空判断,方法内部调用其他时判断,出参判断

 

 

PS:有一种观点认为,在程序所有地方均匀许空对象的存在,将空对象封装成一种特殊对象,该对象有对应的方法,有相关属性或没有部分相关属性

对于部分不会抛异常的地方,可以放松控制:

public abstract class ErrorCodeException extends Exception{
    protected ErrorCode errorCode;
    abstract void getErrorCode();
    public ErrorCodeException(ErrorCode errorCode) {
        super(errorCode.getMsg());
        this.errorCode = errorCode;
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值