我有一个方法可以处理不同的错误代码并且总是抛出未经检查的异常。这个方法在全类很多地方都用到了。当我尝试在另一个没有 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/