Обработка ошибок

23 января 2012

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

В этой статье рассматриваются три аспекта обработки ошибок: коды состояния, структурированная обработка ошибок и фатальные сбои. В общем случае вспомогательные функции режима ядра сообщают о непредвиденных ошибках, возвращая коды состояния, тогда как сообщения об ожидаемых отклонениях от обычного хода программы возвращаются логические или числовые значения, отличные от формальных кодов состояния. Структурированная обработка ошибок предоставляет в распоряжение программистам стандартизированные механизм «зачистки» после действительно непредвиденных событий вроде разыменования недействительного указателя на память, а также предотвращения системных сбоев, обычно следующих после таких событий. Фатальным сбоем называется катастрофический сбой, последствия которого могут быть исправлены только одним способом – перезагрузкой системы.

Рейтинг@Mail.ru