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包的大小来启动一个新项目时,这对我有帮助:).
这种抱怨一定很常见,因为 Java 已经(从 1.7 开始)引入了 URI 类。这个类有两种构造方法:
对于已知来自安全来源的 URI/URL,您可以使用 URI.create() 变体而不必担心捕获异常,因为您知道它不会被抛出。
不幸的是,有时您不能使用 URI 而您仍然需要一个 URL。没有将 URI 转换为不会引发已检查异常的 URL 的标准方法(我目前已找到)。
由于其他人只是发表评论,我将提供的答案是,不,没有标准方法可以做你想做的事:)
另外,既然你提到了 apache commons 和 google guava,我想指出,标准这个词也不完全是正确的使用词......也许你想要开源、免费或只是第三方。