当前位置: 首页 > 面试题库 >

未报告的异常UnknownHostException; 必须被抓住或宣布被抛出

苏振国
2023-03-14
问题内容

我有下面给出的代码。但是,当我尝试编译代码时,出现以下错误。

MyClient.java:12: error: unreported exception UnknownHostException; must be caught or declared to be thrown
    InetAddress address = InetAddress.getByName("localhost");

我在代码中捕获了以上异常。我不知道为什么会这样。

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.ClassNotFoundException;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class MyClient {    
    public static void main(String[] args) {
        InetAddress address = InetAddress.getByName("localhost");

        int count = 0;
        try {
            /*
             * Create a connection to the server socket on the server application
             */

            Socket socket = new Socket(address, 9090);

            /*
             * Read and display the response message sent by server application
             */

            ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
            System.out.println("Created client socket and Input Stream Reader");
            while (true) {
                if (count < 1000) {
                    String message = (String) ois.readObject();
                    System.out.println("OFMessage: " + message);
                    count++;
                } else {
                    break;
                }
            }

            ois.close();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

问题答案:
InetAddress address = InetAddress.getByName("localhost");

该语句在外部try{},将其放在try块中以有效地被catch块捕获



 类似资料:
  • 问题内容: 尝试编译以下代码时遇到此错误。我想知道我做错了什么。 问题答案: 您要么需要在方法中 捕获 异常: 或 声明 抛出方法:

  • 问题内容: 我正在尝试创建一个将字符串输出到文本文件的简单程序。使用在这里找到的代码,我整理了以下代码: J-grasp向我抛出以下错误: 由于我刚接触Java,所以我不知道这意味着什么。有人能指出我正确的方向吗? 问题答案: 您没有告诉编译器,如果文件不存在,则有可能抛出 a 将被抛出。 试试这个

  • 问题内容: 我尝试编译以下内容,但在m16h(x)周围得到以下内容: 不知道为什么。我已经尝试过各种方法,但是看来我做得对。 问题答案: 方法的签名表明很容易引发Exception。 这意味着异常之一: 必须由呼叫者处理 } catch (Exception e) { e.printStackTrace(); } 必须由呼叫者重新抛出

  • 我有一个方法被定义为: 编译器抱怨说,“未报告的异常政策异常;必须被捕获或声明为被抛出。我不知道为什么它建议我可以抛出,但“抛出”就在方法签名中。 被定义为: 当我尝试在try…catch中封装调用时,错误会保留,并会引发另一个错误,该错误表示try主体中从未抛出异常。我该如何补救?Am使用javase7和netneans 8

  • 问题内容: 我已经在这个程序上工作了一段时间了,我的大脑被炸了。我可以向其他人寻求帮助。 我正在尝试制作一个程序来逐行读取文本文件,并且将每一行都制成一个,以便可以访问每个令牌。我究竟做错了什么? 我要戳一下眼球。我遇到了三个错误: 我究竟做错了什么? 问题答案: 在大多数情况下,当您使用Java使用I / O时,您必须处理IOException,这可能在您读/写甚至关闭流时随时发生。 您必须将敏