有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java避免使用异常作为流控制

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

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

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

共 (1) 个答案

  1. # 1 楼答案

    这是一种设计气味,sonar识别的模式与您的代码相匹配,如果您希望在通常的流中发生某些事情,然后抛出异常,而不是处理错误,并提供适当的返回,而不是向调用方抛出另一个异常,则最有可能出现这种情况

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