Исключения предоставляют удобный способ обработки ошибок и механизмы устранения ошибок, и тесно связаны с классами. Исключения поддерживаются как конструкции трёх видов:
Raise
Raise - вызывает исключение. Это обычно делается, чтобы сигнализировать наличие ошибки. Также можно использовать, чтобы прервать выполнение и немедленно вернуться к известной точке исполняемого файла.
Try ... Except
Блок Try служит для отлова исключений, сгенерированных в его рамках. Если исключение происходит, то выполняется часть Except. Она должна предоставить код «восстановления после исключения».
Try ... Finally
В случае возникновения исключения в блоке Try, последовательное исполнение блока будет прервана и выполнен блок Finally. (Блок Finally будет выполнен всегда, и в случае нормального исполнения, и в случае возникновения исключения). Как правило, они служат для очистки памяти или закрыть файлы, а так-же для освобождения ресурсов в случае возникновения исключения. Кроме того компилятор генерирует неявные блоки Try...Finally вокруг процедур, чтобы согласовать память.
17.1 Оператор Raise
17.2 Операторы try...except
17.3 Операторы try...finally
17.4 Обработка вложенных исключений
17.5 Классы исключений
|