-2

我知道存在更好的 URL 验证方法,而更糟糕的方法可能比这个示例更常见。但是,当 url = "Some random english sentence" 时,有人可以告诉我以下 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。

4

2 回答 2

2

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

于 2013-09-03T02:50:55.653 回答
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.

由于未指定方案,因此引发了异常。

于 2013-09-03T02:56:29.813 回答