Java中给定的URL验证代码有什么问题?

时间:2013-09-03 02:24:13

标签: java

我知道存在更好的URL验证方法,这个例子可能更常见。但当url =“一些随机英语句子”时,有人可以告诉我以下URL验证码可能有什么问题吗?

我看到验证失败了。不知道为什么。

/**
 * Checks if url is ok
 * THIS METHOD DOESNT SEEM TO WORK WELL
 * 
 * @param url
 * @return True if url is ok, False otherwise
 */
static public boolean isUrlOk(String url) {
    try {
        URL urlObject = new URL(url);
        String host = urlObject.getHost();
        return true;
    } catch (Exception e) {
        return false;
    }
}

问题:随机句子有时会返回true。

2 个答案:

答案 0 :(得分:2)

修改catch部分以添加e.printStacktrace()以获取失败原因的详细信息。 如果你正在尝试“一些随机英语句子”,它将失败,没有指定协议。

答案 1 :(得分:1)

根据http://docs.oracle.com/javase/7/docs/api/java/net/URL.html#URL(java.lang.String)java.net.URL API文档:

MalformedURLException - if no protocol is specified, or an unknown protocol is found, or spec is null.

由于未指定方案,因此抛出了异常。