Главная страница проекта ИНФОРМАТИКА-21

Наука Школе

Основные ситуации, приводящие к аварийной остановке программы

  1. Логическое выражение в первом аргументе процедуры ASSERT имеет результат FALSE. Эта процедура предназначена для контроля пред- и пост-условий, а также инвариантов циклов и т.п.; программиста. Аварийная остановка в этом случае означает, что предположения программиста о поведении программы в данной точке не соответствуют логическому условию в процедуре ASSERT — либо программа не делает того, что требует программист, либо программист допустил ошибку в записи условия.

  2. Попытка выйти за границы массива — обычно в результате неправильно заданного условия окончания цикла.
  3. Попытка разыменования указателя, имеющего значение NIL в данной точке программы — либо из-за того, что указатель не был надлежащим образом инициализирован (не была вызвана процедура NEW), либо из-за того, что неправильно контролируется обход динамической структуры (например, ссылку на NIL обычно содержит последний элемент линейного списка).

  4. Программа выполнила процедуру HALT, которая по определению служит для вызова аварийной остановки.

  5. В правой или (реже) левой части оператора присваивания оказалась не выполненой охрана типа (динамический тип переменной оказался несоответствующим типу, указанному в охране).

  6. В операторе CASE или WITH не предусмотрен вариант ELSE, а при выполнении программы ни один из явно указанных вариантов выбора не реализовался.

Главная страница проекта ИНФОРМАТИКА-21

Наука Школе