是否有一个实用程序来解析URL而没有在java中检查异常?

Lau*_*Roy 13 java exception-handling

编辑:似乎我在第一次听起来太烦了,这是一个返工.

我想创建一个URL常量,就像这样

public static final URL REMOTE_URL = new URL("http://example.com/");
Run Code Online (Sandbox Code Playgroud)

但我不能因为构造函数抛出一个已检查的异常.现在我用

public static final URL REMOTE_URL = createUrl("http://example.com/");

private static URL createUrl(String url) {
    try {
        return new URL(url);
    } catch (MalformedURLException error) {
        throw new IllegalArgumentException(error.getMessage(), error);
    }
}
Run Code Online (Sandbox Code Playgroud)

但它感觉像重新发明轮子.我不可能是唯一一个想要使用URL常量的人吗?所以我想知道是否有第三方工具箱库(如番石榴或apache-commons,或其他什么东西)甚至更好,标准Java中包含这些设施的东西?当我们通过减小util包的大小来启动一个新项目时,这对我有帮助:).

Fr *_*ieg 7

这种抱怨一定很常见,因为 Java 已经(从 1.7 开始)引入了 URI 类。这个类有两种构造方法:

  1. 使用 URI.new,它会抛出一个已检查的异常
  2. 使用 URI.create,它会抛出一个未经检查的异常

对于已知来自安全来源的 URI/URL,您可以使用 URI.create() 变体而不必担心捕获异常,因为您知道它不会被抛出。

不幸的是,有时您不能使用 URI 而您仍然需要一个 URL。没有将 URI 转换为不会引发已检查异常的 URL 的标准方法(我目前已找到)。


Dav*_* L. 3

由于其他人只是发表评论,我将提供的答案是,不,没有标准方法可以做你想做的事:)

另外,既然你提到了 apache commons 和 google guava,我想指出,标准这个词也不完全是正确的使用词......也许你想要开源、免费或只是第三方。