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