(参考这篇文章:如何从枚举构造函数中抛出异常?)
我真的很想做同样的事情。示例代码:
public enum PublicIPWebservice {
AMAZON_WEB_SERVICES("http://checkip.amazonaws.com"),
EX_IP("http://api-ams01.exip.org/?call=ip"),
WHAT_IS_MY_IP("http://automation.whatismyip.com/n09230945.asp");
private URL url;
private PublicIPWebservice(String url) throws MalformedURLException {
this.url = new URL(url);
}
public URL getURL() {
return url;
}
}
如果 url 不正确,程序应该会崩溃,因为这将是一个编程错误,所以在构造函数中捕获异常是错误的,不是吗?
解决该问题的最佳方法是什么?