如果发生异常,则返回声明

Rus*_*old 4 java methods return exception try-catch

return在以下方法中使用的正确方法是什么?

public Image getImage() {
    try {
        Image img = ImageIO.read(new File(URL));
        return img;
    } catch (IOException e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

IDE要求我最后返回一些东西.但我不知道我应该回归什么.

Gho*_*ica 6

正确答案是:取决于您的要求.选项包括:

如果此方法的调用者可以处理null答案,则从catch块返回null.或者,在这种情况下,您可以返回"特殊"预定义图像对象.可能是一种稍微好一点的方法 - 因为返回null总是在其他地方引起Nullpointerexceptions的第一步.

或者,您捕获并重新抛出一些未经检查的异常.或者你根本没有捕获并且在方法的签名中添加"throws IoException".

使用Java 8时,简单的解决方案是使用新类Optional.