Java - 如果用户输入无效的 IP 地址或主机名,则抛出异常

标签 java exception ip inetaddress

我想抛出一个异常,当用户输入无效的 IP 地址、主机名或不是完全限定的域名时,它会显示一条错误消息。

我不太确定是否使用unknownhostexception或IOException。

我尝试执行 if 语句,但我不知道 java 中的“无效”是什么。

If (addr != ' not a valid IP address, host name, fully qualified domain name or entered something invalid ')
{
throw new IOException/UnknownHostException("this is invalid: " + addr); }

有人可以帮忙吗?提前致谢。

最佳答案

尝试 InetAddress.getByName(str) 验证字符串。如果需要的话,它会抛出一个UnknownHostException。我建议完全删除您的 if 语句。也许是这样的:

public static InetAddress testAddress(String str) throws UnknownHostException {
    InetAddress add = InetAddress.getByName(str);

    // Check if IP address was simply returned, instead of host.
    if (add.getCanonicalHostName().equals(add.getHostAddress())) {
        throw new UnknownHostException(str + "is not a known host.");
    }
    return add;
}

关于Java - 如果用户输入无效的 IP 地址或主机名,则抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15279726/

相关文章:

java - GroupLayout 一次只能与一个容器一起使用

Java 不一致堆栈溢出

networking - float IP 在 Digital Ocean 上的使用

java - 类转换异常

c# - 有没有办法引用导致异常的对象?

java - JDK8中的CompletableFutures什么时候会阻塞执行线程?

google-app-engine - Google App Engine - urlFetch 地址不在 _netblocks.google.com 中

getaddrinfo 和 getnameinfo 的正确用法

java - Hql如何更新有限制的表?

java - ArrayList 的输出