「チェックされた例外とチェックされていない例外」のトピックについて、SOにはかなりの数の投稿があります。この回答は、おそらく最もバランスが取れており、有益です。それでも、私はそこに示されている論理に従うことにいまだに葛藤しています。それには理由があります。
互いに類似した一連のサービスの周りにラッパー API を構築しています。ただし、それらの間には小さな違いがあり (または将来その可能性があります)、特定の機能 (二次的でショートカット的な性質の) が一部のサービスでサポートされ、他のサービスではサポートされない場合があります。したがって、次のアプローチを採用することは論理的に思えます。
public interface GenericWrapperInterface {
void possiblyUnsupportedOperation () throws java.lang.UnsupportedOperationException;
}
なぜUnsupportedOperationException
ですか?このような状況に合わせて設計されているからです。
ただし、オラクル自身のマニュアルに加えて、関連するすべての SO 投稿は、クライアントが回復できる問題、または予測可能だが避けられない問題を通知するために例外が使用される場合、その例外はチェックされたものであるべきであると仮定しています。私の場合は、これらの要件に準拠しています。一部の操作では、使用できない可能性が事前にわかっている可能性があり、それらの操作は重要ではなく、必要に応じて回避できるためです。
だから私はこの難問に迷っています。完全に適合する標準の例外を使用して、例外の使用に関する一般的なロジックに違反する必要がありますか?それとも、独自のチェック済みの代替案を作成してコードを複製し、API ユーザーの間でさらなる混乱を招く必要がありますか?