我正在构建一个Android应用程序,尝试进行http POST请求,但无论我使用什么URL进行请求,Eclipse都会引发Malformed URL异常。我已经尝试了一行代码来自于其中一个Android教程:
URL url = new URL("https://wikipedia.org");
即使如此也会触发错误。Eclipse为什么会对我尝试创建的任何URL都引发此错误?
我正在构建一个Android应用程序,尝试进行http POST请求,但无论我使用什么URL进行请求,Eclipse都会引发Malformed URL异常。我已经尝试了一行代码来自于其中一个Android教程:
URL url = new URL("https://wikipedia.org");
即使如此也会触发错误。Eclipse为什么会对我尝试创建的任何URL都引发此错误?
这里并没有引发异常,而是在抱怨你没有处理它可能会出现的情况,即使它不会出现,因为在这种情况下URL不是畸形的。(Java的设计者认为这个"checked exceptions"概念是一个好主意,尽管实际上它效果不佳。)
为了消除这个错误,请在方法声明中添加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);
}
}
MalformedURLException
的使用情况下却不是很合适。我不明白Java团队为什么要将MalformedURLException
作为受检异常。 - AxiomaticNexus
throws MalformedURLException
。 - user184994