Java - 新的inetaddress无需检查异常

3

我想要获取 InetAddress 的实例,但不想像该类的每个工厂方法那样放在 try-catch 中:

InetAddress addr = InetAddress.getByAddress(ipAddr);

有没有一种方式可以从字符串 IP 实例化 InetAddress,而不会抛出任何已检查的异常?

我只是在寻找另一种无需检查异常即可获得InetAddress实例的方法,性能是我的关注点。 - f.ald
2个回答

1
您无法这样做。InetAddress.getByAddress(...)会抛出UnknownHostException,这是一个受检异常,因为它是Exception的子类。您必须通过捕获或自行抛出每个受检异常来处理它们。没有其他方法。在您的代码中的某个地方,您将不得不捕获它,否则您的程序将崩溃。

0

只有两种处理方法。 第一种是将其放入try-catch块中,但您希望避免这种情况,另一种方法是使用throws关键字将此异常进一步抛出:

public static static void main(String[] args){
    try {
        method();
    } catch (UnknownHostException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

public void method() throws UnknownHostException {
    InetAddress addr = InetAddress.getByAddress(null);

}

当你使用try-catch调用这个方法时进行处理


这取决于他想要实现什么。他不想处理那个问题,所以肯定有原因。我只是向他展示了一些可能性。 - Rafał Sokalski
就像我说的那样,我只是向他展示了他可以做什么,因为他要求如此。他会决定这是否对他有帮助。 - Rafał Sokalski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接