Глава: Разработка метода
Пункт 49. Проверка правильности параметра
- Ограничения на параметры:
Методы и конструкторы обычно имеют ограничения на значения параметров (например, неотрицательные индексы, ненулевые ссылки).
Эти ограничения должны быть задокументированы и проверены в начале метода.
– Важность проверки:
Обнаруживайте ошибки как можно раньше, чтобы избежать неожиданных сбоев или некорректного поведения метода.
Методы, которые не проверяют свои параметры, могут привести к сбоям в отладке.
– Документация по исключениям:
Используйте тег @throws Javadoc для документирования исключений, возникающих в случае нарушения ограничений.
Распространенные исключения: IllegalArgumentException, IndexOutOfBoundsException, NullPointerException.
Пример проверки параметров:
public static int mod(int x, int y) { if (y— Использование объектов.requireNonNull:
Представленный в Java 7, он используется для проверки обнуляемости объектов.
Возвращает значение, переданное после проверки:
this.m = Objects.requireNonNull(m, "Parâmetro 'm' não pode ser nulo");— проверка диапазонов (Java 9):
Методы checkFromIndexSize, checkFromToIndex и checkIndex для проверки индексов в списках и массивах.
Менее гибкий, в основном используется для коллекций.
**
assert x > 0 : "Valor de x deve ser positivo";
– Особые случаи:
Разработчики всегда должны проверять достоверность сохраненных параметров для последующего использования.
Исключения могут быть сделаны для дорогостоящих проверок, когда проверка неявна во время расчета.
– пример неявной проверки:
Collections.sort(List) предполагает, что объекты взаимно сопоставимы. Проверка происходит в процессе сортировки.
– Перевод исключений:
Если неявная проверка выдает неправильное исключение, используйте «преобразование исключений», чтобы выдать правильное исключение.
— Гибкость ограничений:
Методы должны быть максимально общими и налагать как можно меньше ограничений.
- Заключение:
Документируйте и реализуйте проверки достоверности параметров методов и конструкторов. Практика необходима, чтобы избежать ошибок в будущем и облегчить отладку.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3