我正在编写 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。
还尝试阅读类似的帖子何时使用断言以及何时使用异常。但是检测哪种情况是我的有点令人困惑。
是否有严格定义的方式,在哪里使用断言以及在哪里使用运行时异常?