首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >套接字连接中出现Java未报告的异常

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

Stack Overflow用户
提问于 2018-08-12 04:33:11
回答 3查看 360关注 0票数 -1

我正在学习java,我得到了一个奇怪的错误,我不明白,下面是我的代码:

代码语言:javascript
运行
复制
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();
    }
}

我收到的错误如下:

代码语言:javascript
运行
复制
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编译,如果它有帮助,有人知道如何纠正这个错误吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-12 04:38:50

有两种方法可以实现这一点,一种是在main方法后面编写throws UnknownHostException,另一种是用try-catch包围它。但是,编写IOException而不是UnknownHostException要聪明得多,因为您需要在以后实现这一点,而且因为UnknownHostException扩展了IOException,所以您可以直接编写throws IOException

方法1:

代码语言:javascript
运行
复制
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();
}

方法二:

代码语言:javascript
运行
复制
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();
    }
}

希望这能有所帮助。:)

票数 1
EN

Stack Overflow用户

发布于 2018-08-12 04:37:37

来自public Socket(String host, int port) throws UnknownHostException, IOException抛出的文档

代码语言:javascript
运行
复制
UnknownHostException - if the IP address of the host could not be determined.

请确保您输入了正确的IP地址

票数 1
EN

Stack Overflow用户

发布于 2018-08-12 04:42:14

使用try-with-resources让您不必担心在出现错误时关闭程序。如果存在异常,则套接字将自动关闭。

代码语言:javascript
运行
复制
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)
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51803525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档