Функция определения номера строки, связанной с ошибкой, - ERL

Обработка ошибок

Оператор формирования кода ошибки – ERROR

Назначение: Генерирует ситуацию возникновения ошибки с заданным кодом, а также позволяет пользователю определить свои коды ошибок.

СинтаксисERROR <код ошибки>

Аргумент <код ошибки> должен быть целым числом в диапазоне от 1

до 255.

Для задания пользовательского кода ошибки рекомендуется использовать значение кода начиная с 200 и не совпадающее с имеющимися кодами или выходящее за пределы 255.

При выполнении оператора программа моделирует возникновение ошибки с соответствующим кодом и печатает сообщение об ошибке. Если аргумент функции ERROR не находит заданного кода, выдается сообщение:

Unprintable error (Неопознанная ошибка).

При наличии подпрограммы обработки ошибки (ON ERROR) происходит переход на эту подпрограмму.

Оператор установки среды обработки ошибки – ON ERROR

Назначение: При появлении ошибки передает управление в подпрограмму обработки ошибки.

Синтаксис ON ERROR GOTO [<номер строки> | <метка строки>]

Аргументы <номер строки> и <метка строки> определяют первую строку процедуры обработки ошибки. Эта строка должна обязательно принадлежать уровню модуля.

Если <номер строки> равен 0, то такой оператор запрещает обработку ошибок, а не определяет строку с номером 0 в качестве начальной строки процедуры. Возникающие после этого ошибки вызывают только печать сообщения об ошибке и прекращение выполнения программы. В том случае, когда обработка ошибок разрешена, возникающие ошибки вызывают переход на указанную процедуру обработки ошибок.

Выполнение оператора ON ERROR с номером 0 внутри подпрограммы обработки ошибок прекращает выполнение программы и выводит сообщение об ошибке прерывания. Это позволяет прекратить выполнение программы, если возникает ошибка, которая не может быть обработана указанной процедурой.

Необходимо иметь в виду, что так называемая процедура обработки ошибки не является подпрограммой, функцией DBF FN, процедурой SUB или процедурой-функцией FUNCTION в обычном смысле. Это блок операторов, помеченный начальным номером строки или меткой.

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

Функция определения кода ошибки - ERR

Hазначение: Возвращает код ошибки.

Синтаксис: ERR

В случае возникновения ошибки функция ERR возвращает код ошибки. Поскольку функция ERR возвращает правильное значение только после возникновения ошибки, то эту функцию следует использовать в подпрограммах обработки ошибок для анализа ошибочных ситуаций.

Функция определения номера строки, связанной с ошибкой, - ERL

Назначение: Возвращает номер строки, в которой возникла ошибочная ситуация.

Синтаксис: ERL

В случае возникновения ошибки функция ERL возвращает номер строки, в которой возникла ошибка. Поскольку функция ERL возвращает правильное значение только после возникновения ошибки, то эту функцию следует использовать в подпрограммах обработки ошибок для анализа ошибочных ситуаций.

Функция ERL возвращает только номер строки, но не ее метку, которая расположена перед строкой, вызвавшей ошибку. Если программа не пронумерована, то функция ERL всегда возвращает 0.

2. Описание практической части работы:

2.1. Цели лабораторной работы: Изучить возможности корректировки ошибок, возникающих в процессе выполнения программы.

2.2. Постановка задачи: Разработать программу, содержащую блок обработки ошибок неправильных действий пользователя, обеспечивающий обработку информации в соответствии с заданием.

2.3. Порядок выполнения работы:

2.3.1. Ознакомиться с теоретической частью.

2.3.2. Получить задание у преподавателя.

2.3.3. Выполнить работу:

2.3.3.1. Разработать алгоритм вывода k значений функции y=f(x) на интервале [a,b] и алгоритм процедуры обработки ошибок.

2.3.3.2. Разработать программу, в которой установить начало обработки ошибок оператором ON ERROR GOTO <метка>, где <метка>указывает на начало блока обработки ошибок.

2.3.3.3. Сгенерировать ошибку и определить код ошибки с помощью оператора PRINT в блоке обработки ошибок.

2.3.3.4. Произвести обработку ошибок оператором SELECT CASE ERR.

2.3.3.5. Блок обработки ошибок закончить оператором RESUME.

2.3.1. Оформить отчет:

2.3.4.1. Содержание отчета:

1. Цель работы - краткая формулировка поставленной цели.

2. Порядок выполнения - определяются действия, необходимые для выполнения данной работы.

3. Постановка задачи - формулирование задачи в соответствии с индивидуальным заданием.

4. Решение поставленной задачи:

4.1. Математическое описание решения поставленной задачи содержит описание связей между параметрами с использованием принятых в математике обозначений.

4.2. Описание логической структуры программы (алгоритм решения) содержит:

- краткое описание схемы программы;

- алгоритм решения (по ГОСТ) – рисунок;

- краткое описание используемых операторов языка программирования (при необходимости).

4.3. Описание программы содержит:

- название файла, его размер,

-текст программы (или фрагмент для решения конкретной, наиболее важной части задания).

4.4. Результат работы программы:

- значения, полученные в результате выполнения программы

- анализ полученных результатов.

Выводы - отвечают на поставленную цель.

2.4. Контрольные вопросы:

1. Зачем нужна обработка ошибок в программе ?

2. Можно ли избежать меток в программе, если в ней предусматривается обработка ошибок ?

3. Как определить какая ошибка произошла ?

4. Как определить где произошла ошибка ?

5. Как определить на каком устройстве произошла ошибка 7

6. Как сказывается на работе программы включение обработки ошибок ?

7. Назначение оператора RESUME при обработке ошибок ?

8. Сколько блоков обработки ошибок может быть в программе ?

9. Каким оператором осуществляется обработка ошибок ?

10. Можно ли на время отключить в программе обработку ошибок ?

Таблица

Задания

n задание n задание
Обеспечить расчет значений выбранной функции при возникновении некорректной операции (извлечение логарифма из отрицательного числа) в конкретной точке путем исключения данных точек из расчета. Обеспечить вывод исходных данных и результатов расчета на печатающее устройство (в случае отсутствия принтера произвести обработку ошибок).
Обеспечить вывод исходных данных и результатов расчета в файл на диск А (в случае отсутствия дискеты в дисководе или ее переполнения произвести обработку ошибок). Обеспечить расчет значений выбранной функции при возникновении некорректной операции (деление на ноль) в конкретной точке путем исключения данных точек из расчета.
Обеспечить расчет значений монотонно возрастающей функции до момента переполнения значений функции Обеспечить ввод данных из файла в случае неверно указанного пути к нему.
Обеспечить ввод данных из файла в случае повторного открытия файла с тем же номером. Обеспечить ввод данных из файла в случае неверно указанного имени (присутствие пробелов или при длине более 8 символов).
Обеспечить расчет значений выбранной функции при возникновении некорректной операции (извлечение корня из отрицательного числа) в конкретной точке путем исключения данных точек из расчета. Обеспечить расчет значений выбранной функции при возникновении некорректной операции (возведение отрицательного числа в дробную степень) в конкретной точке путем исключения данных точек из расчета.
Обеспечить расчет значений выбранной функции при возникновении некорректной операции (переполнении массива) в конкретной точке путем исключения данных точек из расчета. Обеспечить расчет значений выбранной функции при возникновении некорректной операции (деление на ноль) в конкретной точке путем исключения данных точек из расчета.
Обеспечить расчет значений монотонно возрастающей функции до момента переполнения значений функции Обеспечить ввод данных из файла в случае неверно указанного пути к нему.
Обеспечить ввод данных из файла в случае неверно указанного пути к нему. Обеспечить ввод данных из файла в случае повторного открытия файла с тем же номером
Обеспечить вывод исходных данных и результатов расчета на печатающее устройство (в случае отсутствия принтера произвести обработку ошибок). Обеспечить расчет значений выбранной функции при возникновении некорректной операции (переполнении массива) в конкретной точке путем исключения данных точек из расчета.
Обеспечить вывод данных в файла в случае неверно указанного пути к нему. Обеспечить ввод данных из файла в случае повторного открытия файла с тем же номером.
Обеспечить ввод данных из файла в случае неверно указанного имени (присутствие пробелов или при длине более 8 символов). Обеспечить расчет значений выбранной функции при возникновении некорректной операции (переполнении массива) в конкретной точке путем исключения данных точек из расчета.
Обеспечить вывод исходных данных и результатов расчета на печатающее устройство (в случае отсутствия принтера произвести обработку ошибок). Обеспечить расчет значений выбранной функции при возникновении некорректной операции (извлечение корня из отрицательного числа) в конкретной точке путем исключения данных точек из расчета.
Обеспечить расчет значений монотонно возрастающей функции до момента переполнения значений функции Обеспечить ввод данных из файла в случае неверно указанного имени (присутствие пробелов или при длине более 8 символов).
Обеспечить расчет значений выбранной функции при возникновении некорректной операции (деление на ноль) в конкретной точке путем исключения данных точек из расчета. Обеспечить вывод исходных данных и результатов расчета в файл на диск А (в случае отсутствия дискеты в дисководе или ее переполнения произвести обработку ошибок).
Обеспечить расчет значений выбранной функции при возникновении некорректной операции (возведение отрицательного числа в дробную степень) в конкретной точке путем исключения данных точек из расчета. Обеспечить расчет значений выбранной функции при возникновении некорректной операции (извлечение логарифма из отрицательного числа) в конкретной точке путем исключения данных точек из расчета.

Наши рекомендации