Понятие исключительной ситуации (исключения)

Обработка исключений

Исключительной ситуацией (исключением) - называют такую ситуацию в работе ЭВМ, когда выполнение команды - не может быть завершено обычным образом. Обычно возникновение исключений связано либо с ошибками в работе аппаратуры, либо с ошибками в программе, либо с возникновением нестандартной, "нештатной" ситуацией в ходе вычислительного процесса.

 

Примеры исключительных ситуаций:

- "переполнение" (основной результат выполнения команды слишком велик, и не может быть записан в отведённое форматом данных место в памяти) ;

Полученный результат так велик, что число не может быть записано в отведенное место памяти ЭВМ.

- деление на 0 (результат выполнения операции математически не определён)

- обнаружены ошибки в аппаратной части

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

.

3.17.2 Понятие "обработка исключения", и роль процессора в обработке исключений.

 

1) Действия, совершаемые по возникновению "исключительной ситуации" называют "обработка исключения".

 

2)Для каждой из числа возможных исключительных ситуаций определён "номер исключительной ситуации" или, другими словами "номер вектора прерывания по которому обрабатывается данная исключительная ситуация".

 

3) В случае возникновения исключения процессор самостоятельно не предпринимает никаких действий по исправлению ситуации. Роль процессора состоит лишь в том, чтобы обнаружить возникновение исключительной ситуации, зафиксировать "номер исключительной ситуации" и далее -вызвать так называемую "программу обработки исключения".

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

Программы обработки исключений вызываются как динамически вызываемые программы, через вектор ТВП с номером, соответствующим номеру возникшей исключительной ситуации. Алгоритм вызова – подобен алгоритму вызова программ обработки прерываний, рассмотренному в 3.16.6.

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

 

4) Программы обработки исключений, разумеется, пишутся программистами, и то как написана каждая из программ, уже и определяет - что будет происходить в случае возникновения каждой из исключительных ситуации.