【问题标题】:Avoid using exceptions as flow control避免使用异常作为流控制
【发布时间】:2018-09-14 11:51:51
【问题描述】:

我有一个声纳违规,听起来像是“避免使用异常作为流量控制”。

我想知道根据最佳实践重写此代码的最佳方法是什么

try { 
} catch(SomeCheckedException ex) {
      throw (SomeRuntimeException) ex.getCause();
}

【问题讨论】:

标签: java coding-style code-cleanup


【解决方案1】:

这是一种设计气味,声纳识别的模式与您的代码相匹配,如果您期望在正常流程中发生某些事情,然后抛出异常而不是处理错误和提供适当的返回而不是向调用者抛出另一个异常。

这不是最佳的一个原因是异常处理比在预期的错误情况下简单地返回 null(例如)要慢得多。此外,您的软件应提供清晰的 API,不应以异常为中心。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-21
    • 2010-12-05
    • 2010-10-18
    • 2010-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多