ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.04.2021
Просмотров: 732
Скачиваний: 3
91
Добавьте текст исключения во вкладке
«Текст»
.
Сохраните изменения.
На следующем шаге создайте исключение для неверного символа оператора.
Назовите его «
ZCX_*##_UNDEF_OPERATOR
»
и установите наследование от
созданного ранее исключения. Пометьте класс, как конечный:
.
После сохранения, перейдите во вкладку
«Атрибуты»
. Так как нам интересен символ
оператора, вызвавший исключение, добавьте атрибут с названием «
Operator
»
типа
C
(Char)
.
Теперь в тексте исключения вы можете сослаться на созданный атрибут. Перейдите
во вкладку
«Текст»
. Введите:
Оператор &operator& неизвестен.
Описание
исключения
Исключение –
неопределенный
оператор
92
Во время выполнения программы ссылка будет заменена на символ, вызвавший
исключение.
Повторите
те
же
шаги
и
для
второго
исключения.
Назовите
его
«
ZCX_*##_VALUETOHIGH
».
Это исключение должно иметь дополнительный атрибут
maxvalue
типа
I (Integer)
, для хранения максимального значения, которое было
превышено. Текст исключения должен быть таков:
Результат превышает максимальное значение &maxvalue&
Исключение –
превышен
максимум
93
Сохраните и активируйте изменения.
Задание 3: Модификация калькулятора
Краткое описание:
В функцию калькуляции из главы 3 добавляется обработка
созданных ранее исключений.
Откройте функциональный модуль «
Z*##FMCALCULATION
»
. Сначала исключения
необходимо объявить.
Перейдите
во
вкладку
«Особые
ситуации»
.
Добавьте
исключения
«
CX_SY_ZERODIVIDE
»
и «
ZCX_*##_CALC_EXCEPTION
»
. Так как другие исключения
унаследованы от
CALC_EXCEPTION
, нет необходимости упоминать их отдельно.
Убедитесь, что установлена галочка
«Классы исключ.»
.
Перейдите к исходному коду. Добавьте секцию
WHEN OTHERS
в инструкцию
CASE
,
чтобы отлавливать все неподходящие символы. Установите исключение
«ZCX_*##_UNDEF_OPERATOR
», определив
im_operator,
как параметр вызова.
После инструкции
CASE
добавьте условие
IF
, проверяющее, не превысил ли
результат 1000. И установите исключение
«ZCX_01_ValueToHigh»
.
Сверяйтесь с рисунком ниже.
Объявление
используемых
исключений
Исходный код
функционального
модуля
94
Задание 3: Изменение отчета работы калькулятора
Краткое описание:
Отчет работы калькулятора из главы 3 изменяется для
отображения созданных ранее исключений.
Откройте исходный код
«ZY*##CALCULATION»
.
Для начала нужно добавить определение переменной, хранящей указатель на
полученное исключение. Так как отчет должен показывать текст исключения, вы также
должны определить строковую переменную
На втором шаге, главная часть отчета о работе должна быть расширена секцией
try
.
Затем добавьте две секции
catch
: Первая ловит «
ZCX_*##_CALC_EXCEPTION
».
Также она ловит унаследованные исключения.
Воспользуйтесь методом
get_text( )
,
чтобы получить текст исключения и вывести его.
Вторая секция catch используется для исключения «CX_SY_ZERODEVIDE». В этом
случае необходимо просто вывести текст
«Деление на ноль!»
Код должен получить следующий вид:
Проверьте исходный код на синтаксические ошибки, сохраните и активируйте
изменения. Запустите тестирование.
Проверьте работу трех видов исключений. Ниже рисунок, показывающий работу
программы при неопределенном символе оператора.
Исходный код
95