返回值并引发异常?

2022-09-01 14:02:43

我正在使用一个API,该API声称如果成功则返回true,如果失败则返回false。但是,如果失败,它也声称会引发不同的异常。它如何返回 false 并引发异常?


答案 1

不可能同时引发异常并从单个函数调用返回值。

也许它会执行类似在出现错误时返回之类的操作,但如果输入无效,则会引发异常。false

编辑:PaulPRO发布了一个(现已删除的)答案,指出从技术上讲,可能导致异常在不同的线程中引发,同时在当前线程中返回值。我认为这是值得注意的,即使它不是你应该看到的。


答案 2

您可以引发具有(在本例中为布尔值)值的异常:

public class ValueException extends Exception {
    final boolean value;

    public ValueException(boolean value, String message) {
        super(message);
        this.value = value;
    }

    public boolean getValue() {
        return value;   
    }
}

推荐