Все предопределенные в C++ Builder классы исключений являются прямыми или косвенными наследниками класса Exception, объявленного в модуле SysUtils и наследующего непосредственно TObject.
В классе Exception объявлено два свойства:
Свойство | Тип | Описание |
HelpContext | int | Целый идентификатор экрана контекстно-зависимой справки. Этот экран справки отображается, если пользователь, находясь в окне с сообщением об ошибке, нажимает клавишу F1. По умолчанию значение равно 0. |
Message | System::AnsiString | Строка сообщения, которая в дальнейшем при обработке исключения системным обработчиком отображается в окне сообщений; устанавливается конструктором с умолчанием. |
Свойство Message имеет значение по умолчанию, которое присваивается при автоматической генерации исключения. При преднамеренной генерации исключений их конструкторы, описанные в следующем разделе, могут задавать значение свойства Message в виде переменной типа string или литеральной константы.
Свойство HelpContext хранит целый идентификатор экрана контекстно-зависимой справки. Этот экран справки отображается, если пользователь, находясь в окне с сообщением об ошибке, нажимает клавишу F1.
По умолчанию значение свойства HelpContext равно 0. Это значение может выполняться некоторыми конструкторами исключений. Например, оператор
throw Exception("He хватает исходных данных", 4);
Генерирует исключение со значением свойства Message, равным тексту «Не хватает исходных данных», и значением свойства HelpContext, равным 4. При получении сообщения об этом исключении пользователь сможет нажать клавишу F1 и получить пояснения, что ему делать в этом случае. Генерация исключения осуществляется ключевым словом throw. Можно, проанализировав какие-то данные и обнаружив ошибку, сгенерировать таким образом собственное исключение, которое будет затем обработано приложением.
Конечно, чтобы свойство HelpContext работало, надо создать соответствующий файл справки и связать его с приложением, установив соответствующую опцию Help file (файл справки) в окне Project Options (опции проекта) на странице Application (приложение).