Кент Рейсдорф. BORLAND C++BUILDER. Раздел 4
Кент Рейсдорф. BORLAND C++BUILDER. Страница 407
Рассказ об обработке исключений легко может занять всю главу, поэтому я ограничусь рассмотрением только тех исключений, которые формируются компонентами VCL.
Ключевые слова обработки исключений: try, catch и throw
Синтаксис обработки исключений не особенно сложен. Существуют три ключевых слова — try (контролировать), catch (ловить, захватывать) и throw (выбрасывать, формировать, генерировать, посылать). Ключевые слова try и catch используется при обработке исключений, а ключевое слово throw — для формирования исключения. Рассмотрим их более подробно.
try {
TryStatements
}
catch (TypeToCatch) {
CatchStatements
}
Ключевое слово try отмечает начало контролируемого блока. TryStatements — это исполняемые операторы. Если какие-либо исключения типа TypeToCatch сформированы во время выполнения TryStatements, то выполняются операторы CatchStatements. Если ни одно исключение не сформировано, операторы CatchStatements игнорируются и выполнение программы продолжается с оператора, следующего за блоком catch. TypeToCatch может быть одним из встроенных типов данных (int, char, long и т.д.), экземпляром класса или многоточием (...). Если TypeToCatch — многоточие, то захватываются все исключения, независимо от их типа.
Захват исключений с try и catch
Прежде, чем я попытаюсь объяснить ключевые слова try и catch, рассмотрим простой пример. Листинг 14.2 содержит короткий фрагмент кода, который иллюстрирует обработку исключений. Этот код пытается загрузить графический файл (.bmp, .wmf или .ico). Если выбранный пользователем файл не относится к этим форматам, VCL формирует исключение. Вы захватываете исключение и выводите окно сообщения, говорящее пользователю, что выбранный файл не является графическим файлом Windows.