Ответ 1
У вас может быть юридическое использование API и все еще есть недействительные данные; это все семантика.
В Java существует семантическая разница между использованием Недопустимый "(как в IllegalArgumentException
) по сравнению с Недопустимый" (как в javax.activity.InvalidActivityException
)?
В ходе задания стало полезно написать подкласс IllegalArgumentException
, чтобы представить последовательность входных символов, которые не могут быть обозначены, и мне интересно, использует ли конвенция использование InvalidTokenException
или IllegalTokenException
.
Единственное различие, которое я могу найти до сих пор, заключается в том, что java.lang
, похоже, предпочитает "Недопустимый", а javax.*
предпочитает "Invalid". Однако существует также java.security.InvalidParameterException
, который является подклассом IllegalArgumentException
.
У вас может быть юридическое использование API и все еще есть недействительные данные; это все семантика.
javax.activity.InvalidActivityException
наследуется от java.rmi.RemoteException
, и вам, вероятно, не нужна эта зависимость. См. Также Javadoc
ИЗМЕНИТЬ как Недействительные, так и Незаконные используются синонимом, они не различают семантику, а только технические проблемы, упомянутые выше.
EDIT: From Postgres Документация Раздел 45.3.14. Трудные слова, которых следует избегать:
Нелегальная. "Незаконный" означает нарушение закона, остальное "недействительно". Еще лучше, скажите, почему это недействительно.
AFAIK, IllegalArgumentException следует использовать только тогда, когда вы хотите сообщить о некорректном использовании вызова метода API. То, что, по-видимому, вы описываете, является сценарием, когда API был использован неправильно, поэтому я думаю, что лучшим вариантом будет исключение IllegalArgumentException.