Структурная схема терминов
Понятие исключительных ситуаций
Исключительная ситуация – это динамическая ошибка, представляющая собой нарушение условий выполнения программы, вызывающее прерывание или полное прекращение ее работы.
Исключением называют обработчик исключительной ситуации, который производит нейтрализацию вызвавшей его динамической ошибки.
Независимо от источника ошибки приложение получает сообщение об ее возникновении. Исключение остается актуальным до тех пор, пока не будет обработано глобальным обработчиком или локальными процедурами.
В Delphi механизмы обработки ошибок инкапсулированы в класс Exception, описываемый в модуле SysUtils. Все классы исключений являются его потомками.
Возникающие при выполнении программы динамические ошибки автоматически преобразовываются средствами Delphi в соответствующие объекты-исключения. Объект-исключение содержит информацию о типе ошибки и при возникновении исключения заставляет программу или ее поток (составляющую процесса) временно приостановиться. После обработки исключения объекты-исключения автоматически удаляются.
Исключительные ситуации могут возникнуть по причине ошибок в среде Windows, а также нехватки памяти, ошибок преобразования, в результате вычислений и т.п.
Для операций, связанных с БД, существуют специальные дополнительные классы исключений:
EDatabaseError – предназначен для обработки ошибок при работе с набором данных (БД – TTable, TQuery), имеет двух потомков:
· EDBEngineError – ошибка BDE (для локальных и файл-серверных БД);
· EDBClient – ошибка в приложении клиента (для клиент-серверных БД).
EDBEditError – значение, введенное в поле, не соответствует типу данных поля или вводимые в поле данные несовместимы с маской ввода, заданной в свойстве EditMask.
Исключительная ситуация класса EDatabaseError генерируется, например, при попытке открытия набора данных, связанного с отсутствующей таблицей, при изменении записи набора данных, находящегося в режиме просмотра.
Класс TDBError содержит информацию об исключительной ситуации в свойствах:
· Message типа String – текст сообщения, характеризующий возникшую ошибку;
· ErrorCode типа DBIResult – код ошибки;
· Category типа Byte – категория исключительной ситуации;
· SubCode типа Byte – группа (подкод) исключительной ситуации;
· NativeError типа Longint – код ошибки, возвращаемой сервером. Если код равен 0, то ошибка произошла не на сервере.
Обработка исключений
Для обработки исключений в приложении есть один глобальный обработчик и несколько специализированных обработчиков, реагирующих на определенные исключения. Каждое исключение обрабатывает свой специализированный локальный обработчик. Исключение, не имеющее своего локального обработчика, обрабатывается глобальным обработчиком приложения.
Дата добавления: 2021-09-25; просмотров: 348;