【问题标题】:Is it better to check for errors or make exception检查错误或异常是否更好
【发布时间】:2014-04-04 18:25:45
【问题描述】:

这两个哪个更好用

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

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

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

【问题讨论】:

标签: java exception


【解决方案1】:

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

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

处理这种情况的“正确”方法是

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

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

然而,例外情况在当地是昂贵的,这是事实。它们是否会影响程序的性能完全是另一个问题。但是如果使用得当,异常通常不会成为瓶颈(当你的应用程序崩溃时谁在乎性能?)

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 2021-06-02
      • 2016-08-17
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多