有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java:无法初始化InetAddress

由于某种原因,我似乎无法初始化InetAddress对象,我查看了文档,它与我使用它的方式完全相同

 InetAddress firstMachineAddress = InetAddress.getByName("129.26.70.95");
 InetAddress secondMachineAddress = InetAddress.getByName("129.26.70.108");

Eclipse说:

Default constructor cannot handle exception type UnknownHostException thrown by implicit super constructor. Must define an explicit constructor

到底怎么了


共 (2) 个答案

  1. # 1 楼答案

    inetAddress对象会抛出一个异常,因此您需要围绕它包装一个try catch,或者让您的方法也抛出一个异常。此外,我相信你得到了错误,因为有一个异常返回,你没有处理。getByName()方法使用www.google等网址名称的字符串参数。com或www.amazon。com等等

    try{
            InetAddress Address = InetAddress.getByName("www.google.com"); 
            System.out.println(Address);
        }catch(UnknownHostException e){
            e.printStackTrace();
        }
    

    这显示了www.google。com/64.233.177.147

  2. # 2 楼答案

    您的代码似乎位于一个类的构造函数中,该构造函数由另一个类扩展,如下所示:

    import java.net.*;
    
    class SuperclassWithUnknownHostException {
        public SuperclassWithUnknownHostException() throws UnknownHostException {
            InetAddress firstMachineAddress = InetAddress.getByName("129.26.70.95");
            InetAddress secondMachineAddress = InetAddress.getByName("129.26.70.108");
        }
    }
    
    class SubclassCannotHandleException extends SuperclassWithUnknownHostException {
    
    }
    

    您需要向引发异常的子类添加默认构造函数:

    class SubclassCannotHandleException extends SuperclassWithUnknownHostException {
        public SubclassCannotHandleException() throws UnknownHostException {
    
        }
    }