others - Java - 如何避免编译错误:missing return statement

我有一个处理错误代码的方法,总是抛出未经检查的异常,当我试图在没有void返回类型的方法中调用它时,如下所示:


public Object someMethod() {


 ....


 if(success){


 return result;


 } else {


 callMethodThatAlwaysThrowsUncheckedExceptions();


 }


}



java编译器抛出该方法是missing return statement 的错误。

有没有办法来解决这个问题?

时间:

只要交换这些,如果方法抛出,就永远不会返回。


 if(!success){


 callMethodThatAlwaysThrowsUncheckedExceptions();


 } 



 return result;



甚至


 callMethodThatAlwaysThrowsUncheckedExceptions(succes);


 return result;



只需检查方法中的成功条件。

更改你 callMethodThatAlwaysThrowsUncheckedExceptions()将Exception扔进工厂方法,例如:改变这个:


// somewhere in callMethodThatAlwaysThrowsUncheckedExceptions


throw new MyException();



到:


return new MyException();



这样,你就可以这样调用该方法:


throw callMethodThatAlwaysThrowsUncheckedExceptions();



这将帮助编译器看到这是执行分支的最后一条语句。

...