我想抛出一个异常,当用户输入无效的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); }
有人可以帮忙吗?提前谢谢。
答案 0 :(得分:2)
尝试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;
}
答案 1 :(得分:0)
有一个名为regex(正则表达式)的概念,您可以在其中检查该模式是否正确。您可能需要搜索好的解决方案或编写自己的正则表达式(这在我个人看来并不容易)。 但这是一个很好的起点 http://www.mkyong.com/regular-expressions/how-to-validate-ip-address-with-regular-expression/ ;)