请原谅我缺乏Java技能,但我通常是C类人员。我正在开始一些Android开发,我想简单地发出一个GET请求。但是,我甚至无法获得一个简单的URL类型来正确编译。我一直收到这个错误:
HelloWorld.java:17: error: unreported exception MalformedURLException; must be caught or declared to be thrown
URL url = new URL("http://www.google.com/");
^
1 error
运行这个简单的代码时:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.net.HttpURLConnection;
import java.net.ProtocolException;
import java.net.URL;
import java.net.URLConnection;
public class HelloWorld{
public static void main(String []args){
URL url = new URL("http://www.google.com/");
System.out.println(url.toString());
}
}
我在这里做错了什么?
答案 0 :(得分:18)
对于所有已检查的异常,必须在代码中处理它们。这有两种方法。
一般来说,
您可以使用throws
子句将异常处理传递给声明方法的调用者。
或者你可以使用try-catch[-finally]
构造来处理它们。
在你的情况下,
您需要将throws
子句添加到main()
方法
public static void main(String []args) throws MalformedURLException
{
或者您需要使用try-catch
块来包围网址声明,例如:
try{
URL url = new URL("http://www.google.com/");
//more code goes here
}catch(MalformedURLException ex){
//do exception handling here
}
答案 1 :(得分:4)
在java中,必须处理异常。在这样的示例程序中执行此操作的最简单方法是声明main()
抛出:
public static void main(String []args) throws Exception {
继续学习,稍后处理异常处理问题。
答案 2 :(得分:1)
答案 3 :(得分:0)
你必须将url声明包装在try-catch(或抛出它)
中Read more about exception handling.
URL url;
try {
url = new URL("http://www.google.com/");
} catch(MalformedURLException e) {
System.out.println("The url is not well formed: " + url);
}
这是因为创建一个Url是“危险的”,并创建类似的东西:
new URL("testurl");
会引发异常。