猿问

套接字连接中的Java未报告异常

我正在学习 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 进行编译,有人知道如何纠正此错误吗?


LEATH
浏览 144回答 3
3回答

DIEA

有两种方法可以实现它,要么throws UnknownHostException在 main 方法后面编写,要么用 try-catch 包围它。但是写 IOException 而不是 od 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)        }    }}

守着星空守着你

从文档public Socket(String host, int port) throws UnknownHostException, IOException抛出UnknownHostException - if the IP address of the host could not be determined.确保您传递了正确的 IP 地址
随时随地看视频慕课网APP

相关分类

Java
我要回答