实际上,该类根本不是验证 URL 的好方法。 在构造期间,不会在所有格式错误的 URL 上抛出。Catch on也不会验证URL,只会告诉是否可以建立连接。java.net.URL
MalformedURLException
IOException
java.net.URL#openConnection().connect()
请考虑以下代码段:
try {
new URL("http://.com");
new URL("http://com.");
new URL("http:// ");
new URL("ftp://::::@example.com");
} catch (MalformedURLException malformedURLException) {
malformedURLException.printStackTrace();
}
..这不会引发任何异常。
我建议使用一些使用上下文无关语法实现的验证API,或者在非常简化的验证中仅使用正则表达式。但是,我需要有人为此建议一个高级或标准的API,我最近才开始自己搜索它。
注意有人建议,与处理异常相结合可以促进URL的验证。但是,此方法仅捕获上述非常简单的情况之一。URL#toURI()
java.net. URISyntaxException
结论是没有标准的java URL解析器来验证URL。