Java套接字连接中未报告的异常
Java unreported exception in socket connection
我正在学习 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 编译,如果有帮助,有人知道如何纠正这个错误吗?
来自文档 public Socket(String host, int port) throws UnknownHostException, IOException
throws
UnknownHostException - if the IP address of the host could not be determined.
确保传递正确的 IP 地址
有两种方法可以实现它,要么在 main 方法后面写 throws UnknownHostException
,要么用 try-catch 包围它。但是编写 IOException 而不是 UnknownHostException 会更聪明,因为无论如何你都需要稍后实现它,并且因为 UnknownHostException 扩展了 IOException 你可以只写 throws IOException
方法一:
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();
}
}
希望这对您有所帮助。 :)
使用 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)
}
}
}
我正在学习 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 编译,如果有帮助,有人知道如何纠正这个错误吗?
来自文档 public Socket(String host, int port) throws UnknownHostException, IOException
throws
UnknownHostException - if the IP address of the host could not be determined.
确保传递正确的 IP 地址
有两种方法可以实现它,要么在 main 方法后面写 throws UnknownHostException
,要么用 try-catch 包围它。但是编写 IOException 而不是 UnknownHostException 会更聪明,因为无论如何你都需要稍后实现它,并且因为 UnknownHostException 扩展了 IOException 你可以只写 throws IOException
方法一:
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();
}
}
希望这对您有所帮助。 :)
使用 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)
}
}
}