我想将URL实例化为类中的私有字段,但我无法捕获MalformedURLException.我尝试过使用静态初始化块,但这也不起作用.我该如何解决这个问题?
public class MyClass{
private final static URL DEFAULT_URL = new URL("http://www.yadayada.com?wsdl")
...
}
Run Code Online (Sandbox Code Playgroud)
在异常情况下你需要抛出一些东西.一个Error应该做的工作.
public class MyClass{
private static final URL DEFAULT_URL;
static {
try {
DEFAULT_URL = new URL("http://www.yadayada.com?wsdl")
} catch (java.net.MalformedURLException exc) {
throw new Error(exc);
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
如果抛出异常(它不应该),该类将无法初始化.
一个简单的解决方法是创建一个静态方法:
private final static URL DEFAULT_URL = getDefaultUrl();
private static URL getDefaultUrl() {
try {
return new URL("http://www.yadayada.com?wsdl");
} catch (Exception e) {
//what do you want to do here?
return null; //that is an option
throw new AssertionError("Invalid URL"); //that is another one
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |