The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

13.4 Выводы

13.4 Выводы

Предыдущая  Содержание  Следующая V*D*V

Современные языки программирования, подобные Eiffel или C++, поддерживают специальный синтаксис для обработки исключений. Прежде чем предпринять опасное действие устанавливается обработчик исключений. Во время опасного действия исключение могут породить программное обеспечение или аппаратные средства (прерывания, сигналы) и таким образом запустить выполнение обработчика исключений. Теоретически, после завершения обработчика исключений есть три варианта: завершение обоих, обработчика исключений и опасного действия; возобновление опасного действия сразу после точки, где было порождено исключение; или повтор той части опасного действия, которое породило исключение.

На практике наиболее вероятный выбор — завершение, и это может быть единственным выбором, который поддерживает язык программирования. Однако, язык обязательно должен поддерживать вложение областей, где обработчик исключений является эффективным, и должна быть возможность объединить обработку исключений в цепочку, то есть когда один обработчик исключений завершается, должна быть возможность вызвать следующий внешний обработчик.

Обработка исключений с завершением может быть легко реализована в ANSI-C с помощью setjmp(). Обработчики исключений могут быть вложены через помещение в стек информации jmp_buf, настраиваемой setjmp() и используемой longjmp(). Стеком значений jmp_buf можно управлять как объектами класса Exception. Объекты создаются для вложения обработчиков исключений и они должны удаляться в противоположном порядке. Объект исключения снаряжается с помощью catch(), которая вернёт во второй раз ненулевой код исключения. Исключение порождается вызовом cause() с кодом исключения, который должен быть передан в catch() для новейшего объекта исключения.

 

Предыдущая  Содержание  Следующая