Читайте также:
|
|
Когда программа попадает в суровые условия – к новому пользователю и на другой компьютер – с ней может произойти все, что угодно. “Новый хозяин“ может вместо ожидаемых цифр ввести буквы, извлечь корень из отрицательного числа, делить на ноль и выполнять множество других необдуманных, часто случайных действий. Особенно это касается интерактивных (диалоговых) приложений. Из этого следует, что программист должен организовать мощную оборону от всех посягательств на жизнедеятельность своей программы в процессе ее выполнения.
В любом работающем приложении могут происходить ошибки. Причины этих ошибок бывают разными. Некоторые из них вызваны неграмотными действиями программиста. Но существуют ошибки, которых нельзя избежать при проектировании программы, но можно обнаружить во время ее работы (недостаточный объем свободной памяти, отсутствие файла на диске, выход значений исходных данных из допустимого диапазона).
Хорошая программа должна справляться со своими ошибками и работать дальше, не зацикливаясь и не зависая ни при каких обстоятельствах. Для обработки ошибок можно, конечно, пытаться использовать структуры вида
if<error> then
Exit.
Однако в этом случае ваш стройный и красивый алгоритм решения основной задачи обрастет уродливыми проверками. Из этой почти тупиковой ситуации среда Delphi предлагает простой и элегантный выход – механизм обработки исключительных ситуаций.
Исключительная ситуация (exception) — это прерывание нормального хода работы программы из-за невозможности правильно выполнить последующие действия.
При обнаружении проблемы подпрограмма должна создать исключительную ситуацию – прервать нормальный ход своей работы и передать управление тем операторам, которые смогут обработать ошибку.
Как правило, операторы обработки исключительных ситуаций находятся в одной из вызывающих подпрограмм.
Механизм обработки исключительных ситуаций лучше всего подходит для взаимодействия программы с библиотекой подпрограмм. Подпрограммы библиотеки обнаруживают ошибки, но в большинстве случаев не знают, как на них реагировать. Вызывающая программа, наоборот, знает, что делать при возникновении ошибок, но, как правило, не умеет их своевременно обнаруживать. Благодаря механизму обработки исключительных ситуаций обеспечивается связь между библиотекой и использующей ее программой при обработке ошибок.
Механизм обработки исключительных ситуаций довольно сложен в своей реализации, но для программиста он прост и прозрачен. Для его использования в Delphi введены специальные конструкции
try...except...end,
try...finally...end
и оператор raise.
Дата добавления: 2015-11-16; просмотров: 50 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Понятие события | | | Классы исключительных ситуаций |