<<
>>

Перехват исключений

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

Важно то, что исключения могут вызываться программно, а перехватываются они аппаратно или на микропрограммном уровне. Помимо перехвата исключения, есть и другой способ определения факта переполнения. Для этого нужно иметь 1-разрядный регистр, который будет устанавливаться всякий раз, когда происходит переполнение.

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

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

К наиболее распространенным условиям, которые могут вызывать исключения, относятся: переполнение и исчезновение значащих разрядов при выполнении операций с плавающей точкой, переполнение при выполнении операций с целыми числами, нарушения защиты, неопределяемый код операции, переполнение стека, запуск несуществующего устройства ввода-вывода, вызов слова с нечетным адресом, деление на 0.

<< | >>
Источник: Таненбаум Э.. Архитектура компьютера. 5-е изд. 2007

Еще по теме Перехват исключений:

  1. Исключения
  2. какиe виды тайны влекут исключения из числа свидетелей.
  3. Статья 128. Исключение из состава участников полного общества
  4. ИСКЛЮЧЕНИЯ ПРИ АНАЛИЗЕ ГОЛОСОВОГО КОДА
  5. ИСКЛЮЧЕНИЯ ПРИ АНАЛИЗЕ ГОЛОСОВОГО КОДА
  6. Статья 130. Расчеты в случае выхода, исключение и убытие с полного общества
  7. § 2. Требования об освобождении имущества от ареста и исключении имущества из описи (п. 2509-2515)
  8. коян: Восходящий узел - включение в общий поток; Нисходящий узел - исключение из общего потока.
  9. § 13 Личные отношения супругов по русскому закону. – Приобщение жены к состоянию мужа. – Совместное жительство супругов. – Право мужа требовать к себе жену. – Исключение для жены осужденного, сосланного и высланного. – Право мужа следовать за женой. – Нравственная и попечительная обязанность мужа. – Право жены на содержание. – Обязанность жены повиноваться мужу.
  10. Статья 362. Несанкционированные действия с информацией, обрабатывается в электронно-вычислительных машинах (компьютерах), автоматизированных системах, компьютерных сетях или сохраняется на носителях такой информации, совершенные лицом, имеет право доступа к ней
  11. Статья 125. Изменения в составе участников полного общества