Зачем нужно ключевое слово assert?
Слово аssert является унарным оператором, который получает на входе проверяемое логическое утверждение. В том случае, если оно равно false, выбрасывается ошибка AssertionError. Это напоминает работу пары операторов if и throw.
В ранних версиях Java, до четвёртой, слово аssert не являлось ключевым, по этой причине, проверка логических утверждений в режиме по умолчанию, в новых версиях компилятора выключена, чтобы обеспечить совместимость с разработанными ранее программами. А это значит, что логика работы приложения не должна опираться на аssert. Включить проверку можно установив флаг –enableassertons или –ea при запуске команды компилятора java. С помощью этих флагов можно также задавать определённые классы или пакеты, в которых проверка должна быть выключена. С помощью флагов –da и –disableassertions проверку можно выключить. Обычно все перечисленные флаги используются в комбинации.
Обычно аssert используется для дополнительной подстраховки в коде, который не должен выполняться в обычных условиях. Появление исключения AssertionError, в большинстве случаев, говорит об ошибке разработчика.
У аssert существует параметр detalMessage, который передаётся в конструктор исключений AssertionError:
assert 2*2==5 : "two times two not five!";
Бесплатные Telegram-боты для обучения
Практика с проверкой кода и помощью ИИ-ментора
AndroidSprint AI Mentor
Проверяет Pull Request'ы в GitHub, проводит тестовые собеседования с голосом и таймером, помогает разбираться с кодом 24/7
Попробовать ИИ-ментора →KotlinSprint Bot
22 урока Kotlin, 220 тестов, 120 практических задач с код-ревью
Начать обучение Kotlin →