检查错误或异常是否更好?

时间:2014-04-04 18:25:45

标签: java exception

最好使用这两个中的哪一个

if(object != null)
 ...
else
 ...

try{
    ...
} catch(NullPointerException exception){
    ...
}

在我的学校,一些老师更喜欢第二个,但我不确定这是个好主意。有人可以说出使用哪个以及为什么?提前谢谢。

2 个答案:

答案 0 :(得分:2)

性能不是这里最关注的问题。问题是,两者中的哪一个导致更易读/可维护/可测试的程序。您可以稍后担心性能。

一般情况下,不要使用流量控制异常。它们实际上是非本地的goto,使程序更难以阅读和遵循。因此,它们应该保留用于特殊情况。如果您可以不使用try-catch块进行流量控制,请不要这样做。您的程序将更具可读性和可维护性。

"对"处理这种情况的方法是

 if(object != null)
 ...
else
 ...

如果有一个断言保证someMethod的返回值不为null且不为空,则可以避免检查对象不为null而不为空。

然而,异常在当地很昂贵。它们是否会影响程序的性能是另一个问题。但是如果使用得当,异常通常不是瓶颈(当应用程序崩溃时谁会关心性能?)

答案 1 :(得分:-1)

我会检查错误。例外会占用更多资源。但是,如果此对象很少为null,则使用异常,因为它不应为null。