Защитное программирование. Как правильно использовать утверждения
Сегодня поговорим об использовании утверждений. Утверждения (assertion) – это код (метод или макрос), с помощью которого проверяется правильность заданного условия. Обычно утверждение использует два аргумента – логическое выражение для проверки и сообщение, которое должно выводиться пользователю в случае ошибки.
Вот пример утверждения на языке Java:
assert value != 0 : "value is equal to 0";
Утверждения не предназначены для использования в промышленных версиях программ. В основном они используются для отладки при разработке и поддержке ПО. При сборке промышленной версии программы утверждения обычно удаляют. Главная задача утверждений – выявить противоречивые допущения, некорректные значения и условия в ходе разработки программы.
Общие принципы использования утверждений
Для ожидаемых событий используйте собственные процедуры обработки ошибок. Утверждения применяйте для событий, которые никогда не должны произойти.
Обработчик ошибок в программе должен проверять некорректные входные данные из внешних источников, предусмотренные программистом, в то время, как утверждения – ошибки в самой программе.
Отработка предусмотренного обработчика – это штатная ситуация. Отработка утверждения – признак неверной работы программы и необходимости внесения изменений в её исходный код.
Не помещайте исполняемый код в утверждения.
В некоторых компиляторах есть опции отключения исполнения утверждений. А если не компилируется код утверждений, то возникает опасность неверной работы программы, в случае если исполнение этого кода влияет на дальнейшую логику программы.
Используйте утверждения для проверки предусловий и постусловий условий.
Предусловия – это набор требований, которые должны выполняться до вызова метода/создания экземпляра класса и т.п.
Постусловия – это набор требований, которые должны выполняться после отработки метода.
Утверждениями удобно документировать пред- и постусловия. Но стоит помнить, что проверке подлежат данные, которые поступают из внутреннего кода, а не из внешних источников. Для обработки некорректного внешнего ввода должны быть предусмотрены отдельные функции. Когда же корректность проверяется у параметров, поступивших от доверенного внутреннего источника, следует использовать утверждения.
okbm(”http://prog-school.ru/2010/03/zashhitnoe-programmirovanie-kak-pravilno-ispolzovat-utverzhdeniya/”,”Защитное программирование. Как правильно использовать утверждения”)
Понравилась статья? Подпишись на или рассылку
© - Обучение разработке ПО и интернет-проектов онлайн
Posted by
