Всякий раз, когда мне приходилось проверять, не заданы ли заданные параметры методу null, я использовал для записи нулевую проверку и выбрал IllegalArgumentException
, если ошибка null проверена:
if (user == null) {
throw new IllegalArgumentException("User can't be null.");
}
Однако, прочитав исходный код некоторых классов Java 8, таких как ArrayList, я узнал, что Oracle использует Objects.requireNonNull, чтобы проверить параметр на нулевое значение, а затем, если тест завершился неудачей, выдается NullPointerException
.
Таким образом, предыдущий фрагмент кода должен выглядеть следующим образом:
Objects.requireNonNull(user, "User can't be null.");
Меньше и читабельнее.
Предполагая, что я контролирую всю обработку исключений системы (даже если я не должен, иногда это часть бизнеса для обработки этих непроверенных исключений), следует заменить мой IllegalArgumentExceptions
на NullPointerException
и использовать Objects.requireNonNull
вместо того, чтобы писать свою собственную проверку нуля и исключение исключения?