(この投稿を参照: How to throw an exception from an enum constructor? )
私は本当に同じことをしたいと思います。コード例:
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 が正しくない場合、プログラムはクラッシュするはずです。これはプログラミングのミスであるため、コンストラクターで例外をキャッチするのは間違っていますね。
その問題を解決する最善の方法は何ですか?