Введение предусловий (Introduce Assertion)
Полезность страницы:
0/100
Некоторый код работает при определенном состоянии программы.
Выполнять проверку этого состояния с помощью предусловия.
double getExpenseLimit() {
// should have either expense limit or a primary project
return (_expenseLimit != NULL_EXPENSE) ?
_expenseLimit :
_primaryProject.getMemberExpenseLimit();
}
![]()
double getExpenseLimit() {
assert.isTrue (_expenseLimit != NULL_EXPENSE || _primaryProject != null);
return (_expenseLimit != NULL_EXPENSE) ?
_expenseLimit :
_primaryProject.getMemberExpenseLimit();
}
Вместо того, чтобы строить предположения о результате какого-то выражения, важного для корректного выполнения последующего кода, можно описать класс предусловий и явно проверять значение этого выражения.
Предусловия в основном имеет смысл использовать на стадии отладки, убирая их в полностью отлаженной программе. Предусловия будут сами выдавать сообщения об ошибках, когда проверяемые условия не будут удовлетворять соответствующим условиям. Также люди, которые будут разбираться в коде, смогут лучше понять, при каких условиях какая часть кода работает.
Комментарии