gpt4 book ai didi

java - 未捕获的 java.nio.channels.UnresolvedAddressException

转载 作者:行者123 更新时间:2023-11-29 07:04:09 27 4
gpt4 key购买 nike

使用 Java 1.7,以下代码

try
{
sck = SocketChannel.open();
sck.configureBlocking(false);

sck.connect(new java.net.InetSocketAddress(**<bad remote ip address>**, remote_port));
sel = Selector.open();

...
}
catch (IOException e)
{
return false;
}

如果远程地址是错误的 DNS(例如),似乎不会捕获异常。我错过了什么?

最佳答案

UnresolvedAddressException 不是 IOException 的子类,这就是为什么抛出它时您不会捕获它的原因。

UnresolvedAddressExceptionIllegalArgumentException 的子类,如图here ,所以尝试捕捉:

  • UnresolvedAddressException 本身,因为最好先捕获最具体的异常类型
  • Exception 如果您真的不关心您捕获的异常,因为您可以随时停止程序或解决该问题

编辑:您可能错过了那个异常,因为编译器没有强制您捕获它。这是因为 UnresolvedAddressException 派生自 RuntimeException在执行过程中 异常的类型。 不是源自RuntimeException的异常,例如IOException必须被捕获,这就是为什么你的编译器可能告诉您首先将代码包装到 try-catch block 中。

关于java - 未捕获的 java.nio.channels.UnresolvedAddressException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21811761/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com