java - 从另一个方法调用引发异常的方法时,如何避免获得 "Missing return statement"?

标签 java

我有一个方法可以处理不同的错误代码并且总是抛出未经检查的异常。这个方法在全类很多地方都用到了。当我尝试在另一个没有 void 返回类型的方法中调用它时,如下所示:

public Object someMethod() {
   ....
   if(success){
     return result;
   } else {
      callMethodThatAlwaysThrowsUncheckedExceptions();
   }
}

java 编译器说该方法缺少返回语句

如何解决这个问题,我想到了两个选项:

  • 用其内容替换方法调用
  • 在返回空对象的方法调用之后添加一条返回语句

但是我真的不喜欢这些选项中的任何一个:第一个是因为代码重复,第二个是因为需要编写永远不会执行的代码。

还有其他方法可以解决这个问题吗?

最佳答案

只需交换条款,如果方法抛出,您将永远无法返回。

 if(!success){
   callMethodThatAlwaysThrowsUncheckedExceptions();
 } 

 return result;

甚至

 callMethodThatAlwaysThrowsUncheckedExceptions(succes);
 return result;

只需在您的 throw 方法中检查成功条件即可。

关于java - 从另一个方法调用引发异常的方法时,如何避免获得 "Missing return statement"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56360602/

相关文章:

java - 如何重新排序 60mb CSV 文件

java - 每天上午 09.30 开始的 Cron 表达式,间隔 30 分钟

java - 如果 java 应用程序的结果集没有被关闭,这意味着什么?

java - 如何使用 Java 在 XML 中考虑标签名称及其属性来获取值

java - 当键盘输入与字母匹配时,使字母/数字消失

java - 如何修复“无法创建 protected 最终 java.lang.Class java.lang.ClassLoader.defineClass?

java - 如何将Gradle 2.0的Gradle性质添加到Eclipse项目中

Java Swing 绘图小程序

java - 如何从我的资源构建路径加载 ResourceBundle?

java.lang.IllegalArgumentException : class java. text.DecimalFormat 声明了多个名为 maximumIntegerDigits 的 JSON 字段