Зачем нужно ключевое слово 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!";
Поделиться уроком

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *