СПОСОБЫ СООБЩЕНИЯ ОБ ОШИБКАХ

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

Нефатальные - это ошибки, при которых нормальный процесс решения нарушается, но он может быть исправлен самой подпрограммой и требуемое решение вследствие этого может быть получено. К этому же классу ошибок относятся ошибки, влекущие за собой диагностические сообщения, носящие предупреждающий и рекомендующий характер (например, указывающие на более лучший способ использования подпрограммы или отсылающие на другую подпрограмму Библиотеки, которая может решить данную задачу более эффективно).

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

Для нефатальных ошибок значение параметра IERR = n < 64, а для фатальных ошибок - IERR > 64+n, где n - порядковый номер соответствующей ошибки в списке ошибок, обнаруженных данной подпрограммой при счете.

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

Сами диагностические сообщения имеют следующий вид:

БИБЛИОТЕКА НИВЦ МГУ, ПОДПРОГРАММА  < имя подпрограммы >:

ФАТАЛЬНАЯ  ОШИБКА   N < номер ошибки >  -  < диагностическое
                                                                                           сообщение >
 или

НЕФАТАЛЬНАЯ  ОШИБКА   N < номер ошибки >  -  < диагностическое
                                                                                                сообщение > 

В случае нормального окончания работы подпрограммы значение параметра IERR всегда полагается равным 0.

Изложенный выше способ сообщения об ошибках является основным для Библиотеки. Однако, некоторые подпрограммы Библиотеки используются другие соглашения на значения параметра IERR, которые ему придают в случае обнаружения фатальных и нефатальных ошибок. Кроме того, подпрограммы Библиотеки могут иметь другие или дополнительные параметры, помимо параметра IERR, используемые для сообщения об ошибках, возникающих при счете. Все эти случаи подробно оговариваются в описаниях соответствующих подпрограмм.