26

我正在尝试在我正在构建的 android 应用程序中发出 http POST 请求,但无论我使用什么 url 来请求,Eclipse 都会不断引发格式错误的 URL 异常。我尝试了其中一个 android 教程中的一行代码:

URL url = new URL("https://wikipedia.org");

甚至会触发错误。对于我尝试创建的任何 URL,Eclipse 是否有原因不断引发此错误?

4

1 回答 1

67

它没有引发异常,它抱怨你没有处理它可能的可能性,即使它不会,因为这种情况下的 URL 不是格式错误的。(Java 的设计者认为“检查的异常”这个概念是个好主意,尽管在实践中效果不佳。

要关闭它,请将throws MalformedURLException或其超类添加throws IOException到方法声明中。例如:

public void myMethod() throws IOException {
    URL url = new URL("https://wikipedia.org/");
    ...
}

或者,将烦人的异常作为未经检查的异常捕获并重新抛出:

public void myMethod() {
    try {
        URL url = new URL("https://wikipedia.org/");
        ...
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

当您无法处理它们时,Java 8 添加了UncheckedIOException用于重新抛出 s 的类。IOException在早期的 Java 版本中,使用RuntimeException.

于 2014-06-25T21:08:30.917 回答