Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Vvedenie_v_ABAP

.pdf
Скачиваний:
96
Добавлен:
21.05.2015
Размер:
2.85 Mб
Скачать

Добавьте текст исключения во вкладке «Текст».

Сохраните изменения.

На следующем шаге создайте исключение для неверного символа оператора. Назовите его «ZCX_*##_UNDEF_OPERATOR» и установите наследование от созданного ранее исключения. Пометьте класс, как конечный:

.

После сохранения, перейдите во вкладку «Атрибуты». Так как нам интересен символ оператора, вызвавший исключение, добавьте атрибут с названием «Operator» типа C (Char).

Теперь в тексте исключения вы можете сослаться на созданный атрибут. Перейдите во вкладку «Текст». Введите:

Оператор &operator& неизвестен.

91

Во время выполнения программы ссылка будет заменена на символ, вызвавший исключение.

Повторите те же шаги и для второго исключения. Назовите его «ZCX_*##_VALUETOHIGH». Это исключение должно иметь дополнительный атрибут maxvalue типа I (Integer), для хранения максимального значения, которое было превышено. Текст исключения должен быть таков:

Результат превышает максимальное значение &maxvalue&

92

Сохраните и активируйте изменения.

Задание 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».

Сверяйтесь с рисунком ниже.

93

Задание 3: Изменение отчета работы калькулятора

Краткое описание: Отчет работы калькулятора из главы 3 изменяется для отображения созданных ранее исключений.

Откройте исходный код «ZY*##CALCULATION».

Для начала нужно добавить определение переменной, хранящей указатель на полученное исключение. Так как отчет должен показывать текст исключения, вы также должны определить строковую переменную

На втором шаге, главная часть отчета о работе должна быть расширена секцией try.

Затем добавьте две секции catch: Первая ловит « ZCX_*##_CALC_EXCEPTION». Также она ловит унаследованные исключения. Воспользуйтесь методом get_text( ), чтобы получить текст исключения и вывести его.

Вторая секция catch используется для исключения «CX_SY_ZERODEVIDE». В этом случае необходимо просто вывести текст «Деление на ноль!»

Код должен получить следующий вид:

Проверьте исходный код на синтаксические ошибки, сохраните и активируйте изменения. Запустите тестирование.

Проверьте работу трех видов исключений. Ниже рисунок, показывающий работу программы при неопределенном символе оператора.

94

95

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]