这些没有MalformedURLException
的编译和运行 :
new URL("http://example.com/dir1/dir2/page1.html&k>v%k1=>v^!");
new URL("http:////\\example\\.com/dir1/\\@dir2/@&##page1.html&k>v%k1=>v^!");
API for URL(String spec)
构造函数写
MalformedURLException-如果未指定协议,或者未找到未知协议,或者规范为空。
因此,它仅检查参数是否为非null以及是否不为null-再检查一次是否存在正确/现有的协议(方案)。
URI构造函数不同-两种情况下,它们在运行时都抛出java.net.URISyntaxException
,从而检测到非法字符。
1)为什么MalformedURLException如此仅限于检查协议?这会误导其名称“格式错误的网址” ...
2)我是否应该始终喜欢使用URI而不是使用URL,URL是否仅出于传统/兼容性原因而保留?