私はAPIを書いているので、私のAPIは外部モジュールから使用されます。そして、これは、何をアサーションまたはjava.lang.IllegalArgumentException
/**
* Adds translation of information to underlying store for particular language
* @param languageId The identifier of the language
* @param translation The translation provided for the specific language
* @throws AssertionError if the provided language id is {@code null} or empty
* or provided translation is {@code null} or empty
*/
public final void addTranslation(String languageId, String translation){
assert !(Strings.isNullOrEmpty(languageId));
assert !(Strings.isNullOrEmpty(translation));
translations.put(languageId, translation);
}
ランタイム例外を使用すると、この API を使用しているアプリケーションの実行に悪影響を与える可能性があると思います。アサーションを使用すると、アサーション フラグが無効になっていると、API が損なわれます。
また、同様の投稿When to use an assertion and when to use an exceptionを読んでみました。しかし、どのケースが私のものかを検出するのは少し混乱します。
アサーションをどこで使用し、ランタイム例外をどこで使用するか、厳密に定義された方法はありますか?