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
   230   231   232   233   234   235   236   237   238   239   240