关于空值的疑问

来源:11-1 检查工具介绍

乃好

2020-04-28

老师您好,在工作中确实有很多地方会遇到空指针这样的问题,包括有一些避免的方法,举个小例子吧

if(对象a.equals("xxx"))
{
    ...
}

if(("xxx").equals(对象a))
{
    ...
}

这两种判断,据说是下面那种更好,因为对象a有可能是个空值,可我的疑问是,一个对象是空值的话,那它就是不正常的,既然是不正常的就让他直接抛出空指针异常好了,这样我们也好知道到底是哪里出了问题,但有些时候为什么要去判断某个对象是否为空来做进一步处理呢?

写回答

2回答

张小喜

2020-04-29

有个大原则,不管是空值异常还是运行时异常,都应该是我们能预料到并且是我们所希望。反过来任何不可控的异常都是有问题的。

1
1
乃好
非常感谢!
2020-04-29
共1条回复

Java攀登者

2020-04-28

因为空值不一定是异常啊,比如根据id到数据库查某个对象,但数据库本身就不存在这个对象,那么空值就是正确的值,此时抛出异常就是不正确的处理

0
0

Java高效编程技巧实践 告别996

可以改变的编程效率

1451 学习 · 326 问题

查看课程