素材牛VIP会员
编程规范问题,程序中所有变量,都需要做空指针判断吗?
 25***om  分类:Java代码  人气:858  回帖:2  发布于6年前 收藏

规范的编程中,程序中的每一个变量,都需要去if判断或者try catch去排查空指针吗,即使在正常逻辑中不会出现null的地方?菜鸟提问,求讲解。

 标签:java

讨论这个帖子(2)垃圾回帖将一律封号处理……

Lv1 新人
凌***志 移动开发工程师 6年前#1

不是每个地方都必须要判空的,如果每个地方都去判断空,你会发现到处都有判空的if...else...语句,这样代码会非常糟糕,也不利于代码维护。

如果是处理外部输入的逻辑,或是对外服务的接口的实现。那么因为永远不能外部输入会有出现什么意外,为空是很可能的,这个时候就一定要处理判空。

如果是内部处理的逻辑,比如在一个类的private方法,通常private方法是为了处理一些公共的逻辑但又不想把逻辑提供出去,这个时候就没必要去判空。如果空出现空指针,在外层的调用里catch住就行了,做了判空处理,程序运行了半天虽然没报错,但是程序却已经进入一些意外情况。这样反而不好。

还有一个个人总结的是否需要判空的依据是,当一个变量在逻辑上不出意外的情况下不会为空我就不去做判空。如果在逻辑上很有空能为空那就去做判空,并返回一个错误返回,这个错误返回很有可能是业务上的返回,如果是一个接口,那么提示输入字段不合法等等。

Lv5 码农
错***7 Linux系统工程师 6年前#2

不需要,非必要条件下没必要去做,尽早让其自然抛出nullPointException有助于查找到问题。除非是诸如查询,查不出来也有可能,这个时候尽量做,然后友好抛出异常信息,当然,这个如果是不正常逻辑,也尽量早抛,不要抛null指针而已。

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取