Cтраница 2
Эта переменная используется монитором ошибок для установки так называемого кода корректировки. Монитор ошибок устанавливает код корректировки равным единице, если в таблице режимов, для данной ошибки указана подпрограмма корректировки. [16]
Обработкой ошибок управляет специальная программа библиотеки Фортрана, называемая монитором ошибок. Действия монитора ошибок определяются состоянием таблицы режимов. [17]
При использовании средств расширенной обработки ошибок пользователь может допустить ошибки. В этом случае монитор ошибок выдает сообщения, информирующие о допущенной ошибке. [18]
![]() |
Программа вычисления площади треугольника. [19] |
После выполнения подпрограммы корректировки пользователя управление возвращается оператору, следующему за оператором CALL ERRMON. Далее можно предусмотреть опрос кода корректировки, установленный монитором ошибок в переменной IK, чтобы определить, следует ли выполнять стандартное корректирующее действие или нужно продолжить выполнение программы с учетом выполненного нестандартного корректирующего действия. Это имеет смысл в тех случаях, когда на разных участках программы для одной и той же ошибочной ситуации предусматривается либо выполнение стандартного корректирующего действия, либо обращение к подпрограмме корректировки пользователя. [20]
По оператору CALL ERRMON управление передается монитору ошибок, который опрашивает счетчик ошибок и счетчик выведенных сообщений в таблице режимов. Если достигнуто максимально допустимое количество ошибок с данным номером, монитор организует прекращение выполнения программы. В противном случае монитор ошибок выводит сообщение об ошибке, устанавливает в единицу код корректировки и передает управление подпрограмме корректировки, написанной пользователем. В подпрограмме корректировки должны быть предусмотрены действия по обработке ошибочной ситуации. [21]
![]() |
Распечатка исходного модуля подпрограммы. [22] |
В состав библиотеки Фортрана 77 входят несколько специальных подпрограмм, реализующих средства обработки ошибок. Одна из этих подпрограмм содержит таблицу режимов, определяющую способ обработки ошибок. Другая специальная подпрограмма, называемая монитором ошибок, управляет выводом сообщений и обработкой ошибок в рабочей программе в зависимости от состояния таблицы режимов. [23]
Например, пользователь пишет программу, в которой вычисляется площадь треугольника по длинам трех сторон. Случай, когда длина одной из них превышает сумму длин двух других, может рассматриваться как ошибка, обнаруживаемая пользователем. При обработке таких ошибочных ситуаций пользователь с помощью монитора ошибок может запланировать вывод на печать сообщения об ошибке и списка вызываемых подпрограмм, а также выполнить свое стандартное или нестандартное корректирующее действие. Стандартное корректирующее действие обычно производится в той же программной единице, в которой обнаруживается ошибка. Для выполнения нестандартного корректирующего действия должна быть написана специальная подпрограмма корректировки. [24]