Как я могу поймать исключение, если передан адрес IPV6 - PullRequest
0 голосов
/ 28 марта 2012

Это мой код ниже, и я хочу поймать исключение, если какой-либо адрес IPV6 передан.Любая идея, как это можно сделать в моем коде?

private static boolean validateAnIpAddress(String ipAddr) {  

     InetAddress address = null;
     boolean isIPv4;

        try {
            address = InetAddress.getByName(ipAddr);
            isIPv4 = address.getHostAddress().equals(ipAddr) && address instanceof Inet4Address;
        } catch (UnknownHostException e) {
            getLogger().log(LogLevel.ERROR, e.getMessage());
            //return false;
            isIPv4 = false;
        }

        return isIPv4;

     }

1 Ответ

0 голосов
/ 28 марта 2012
try
{
    address = InetAddress.getByName(ipAddr);

    boolean isIPv6 = address instanceof Inet6Address;
    if (isIPv6)
        throw new UnknownHostException("IPv6 Address");

    isIPv4 = address.getHostAddress().equals(ipAddr) && address instanceof Inet4Address;
}

Проверяя, является ли address типом Inet6Address, вы можете выбросить исключение внутри блока try и, следовательно, активировать свой блок catch.

...