Page 235 - 6253
P. 235
чином невірні дані можуть мати вплив на результат обчислення середнього віку
користувачів і т. д. Спроба обробити ситуацію появи негативного значення віку
особи може виглядати наступним чином:
int age = ob.getAge();
if (age >= 0) {
// Реалізація умовного блоку
} else {
// Оповідомлення про помилку
}
Визначати і виправляти такі ситуації дозволяє механізм перевірочних
тверджень (assertion). За допомогою цього механізму можна сформулювати вимоги
до вхідних, вихідних і проміжних даних методів у вигляді певних логічних умов.
Оператор assertion дозволяє написати код, який буде генерувати виняток на етапі
перевірки постумови або проміжних даних:
int age = ob.getAge();
assert (age >= 0): "Від'ємне значення!!!";
// Реалізація блоку
Оператор assertion має наступний синтаксис:
assert (boolexp): expression;
assert (boolexp);
Вираз boolexp може приймати тільки значення типу boolean або Boolean, а
expression – будь-яке значення, яке може бути приведене до рядкового питу. Якщо
логічний вираз отримує значення false, то генерується виняток AssertionError, і
виконання програми припиняється з виводом на консоль значення виразу expression
у випадку якщо воно задане.
Механізм assertion найчастіше використовується для перевірки інваріантів,
наприклад, перерахувань:
enum Mono { WHITE, BLACK }
String str = "WHITE";
Mono mono = Mono.valueOf(str);
switch (mono) {
234