Java格式错误的URL异常

use*_*689 22 java android malformedurlexception

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

URL url = new URL("https://wikipedia.org");
Run Code Online (Sandbox Code Playgroud)

甚至那会触发错误.是否有理由为我尝试创建的任何URL不断引发此错误?

Boa*_*ann 59

它没有提出异常,它抱怨你没有处理它可能的可能性,即使它不会,因为在这种情况下URL没有格式错误.(Java的设计者认为这个概念,"检查异常",这是一个好主意,虽然在实践中它并没有很好地运作.)

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

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

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

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

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

  • 检查异常并不是一个坏主意.如何在'MalformedURLException`的情况下使用它们.`MalformedURLException`不应该是一个经过检查的异常,但是Java团队因为某种原因我做了这个,我还没理解. (8认同)