Итак, я работаю над созданием класса, в котором, если определенные аргументы определенных методов являются нулевыми, либо метод (или объект в целом) не будет работать.
Я знаю, что это 'Я выдам NullPointerException
, как только он получит нулевой объект и попытается его использовать, но я хочу, чтобы программист, пытающийся вызвать метод, понял, что ошибки нет в моем коде.Я просто хочу убедиться, что полученное исключение будет очень четким (без необходимости заглядывать в мой источник).
Я видел несколько примеров того, что я описал, где они выдают IllegalArgumentException
когда параметр имеет значение null.
Вот разница, представьте себе, что someObject как-то жизненно важен для метода:
public void doSomething(SomeClass someObject) {
if (someObject == null) throw new IllegalArgumentException("someObject is null");
...
}
Таким образом, программист понимает, что он или она нарушил контрактподразумевается Javadoc (независимо от того, указано ли это явно).
Это хорошая практика, или даже разумный поступок?
Быстрое редактирование / Боковая панель:
Что лучше сказать в сообщении об исключении?
Лучше указать, что "пошло не так":
someObject равен нулю
Или лучше заявить, что что-то "пошло не так" и, как правило, подразумевать причину (и, в конечном итоге, решение):
someObject не можетбыть нулевым
Или есть лучшая альтернатива?