我正在学习java,我得到了一个奇怪的错误,我不明白,下面是我的代码:
import java.net.Socket;
import java.io.IOException;
class Client{
public static void main(String[]args){
System.out.println("Connecting...");
Socket request=new Socket("127.0.0.1", 1234);
System.out.println("Connected.");
request.close();
}
}
我收到的错误如下:
test.java:6: error: unreported exception UnknownHostException; must be caught or declared to be thrown
Socket request=new Socket("127.0.0.1", 1234);
^
1 error
我正在使用javac test.java编译,如果它有帮助,有人知道如何纠正这个错误吗?
发布于 2018-08-12 04:38:50
有两种方法可以实现这一点,一种是在main方法后面编写throws UnknownHostException
,另一种是用try-catch包围它。但是,编写IOException而不是UnknownHostException要聪明得多,因为您需要在以后实现这一点,而且因为UnknownHostException扩展了IOException,所以您可以直接编写throws IOException
方法1:
public static void main(String[]args) throws IOException{
System.out.println("Connecting...");
Socket request=new Socket("127.0.0.1", 1234);
System.out.println("Connected.");
request.close();
}
方法二:
public static void main(String[]args){
System.out.println("Connecting...");
try {
Socket request=new Socket("127.0.0.1", 1234);
System.out.println("Connected.");
request.close();
} catch (IOException e){
e.printStackTrace();
}
}
希望这能有所帮助。:)
发布于 2018-08-12 04:37:37
来自public Socket(String host, int port) throws UnknownHostException, IOException
抛出的文档
UnknownHostException - if the IP address of the host could not be determined.
请确保您输入了正确的IP地址
发布于 2018-08-12 04:42:14
使用try-with-resources让您不必担心在出现错误时关闭程序。如果存在异常,则套接字将自动关闭。
import java.net.Socket;
import java.io.IOException;
class Client{
public static void main(String[]args){
System.out.println("Connecting...");
try (Socket request=new Socket("127.0.0.1", 1234)){
System.out.println("Connected.");
} catch (IOException e) {
System.out.println("Host error:" + e)
}
}
}
https://stackoverflow.com/questions/51803525
复制相似问题