MalformedURLException除了协议(方案)的正确性之外,是否还不关心URL的正确性?为什么?

时间:2018-12-16 16:02:12

标签: java url uri

这些没有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是否仅出于传统/兼容性原因而保留?

0 个答案:

没有答案