Разное
Облака / Clouds
The bast cloud service
Get 20 GB free!!!
Support WebDav.
Show more >>
time-tested cloud storage
Support WebDav.
Последние книги
Самое популярное
Все бесплатно
Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.
Навигация
Вопросы
Получить изображение формы в виде Bitmap и поместить его в буфер обмена
Категория: Компоненты
Категория: Компоненты
Взять часть URL, которая следует после названия сайта
Категория: Интернет и Сети
Категория: Интернет и Сети
Добавление текстовой информации в .ехе-файл и чтение ее
Категория: Файловая система
Категория: Файловая система
Как можно проверить, запущена программа с локального диска или из сети
Категория: Интернет и Сети
Категория: Интернет и Сети
Изменить структуру ABS (AbsoluteDB)
Категория: Базы данных
Категория: Базы данных
Упаковать BD Accuracer
Категория: Базы данных
Категория: Базы данных
Cколько файлов есть в определённой папке
Категория: Файловая система
Категория: Файловая система
Перекодировка текста DOS-Windows-Koi8
Категория: Текст и строки
Категория: Текст и строки
Числовой формат ячейки в Excel
Категория: Базы данных
Категория: Базы данных
Как нарисовать фрактал
Категория: Математика
Категория: Математика
Delphi - Справочник: Except
Except
|
1 Try Statement {Statement...} Except Statement {Statement...} End; 2 Try Statement {Statement...} Except Statement {Statement...} End; |
Ключевое слово (Unit )
|
Начинает предложение заманивающее в ловушку ошибки Try инструкции
|
Описание:
|
Ключевое слово Except используется для отметки начала блока инструкций, которые обрабатывают исключение в предложении Try. Если блок Except может обработать исключение, то программа не заканчивается. Except имеет два различных синтаксиса: Версия 1 В этой версии, если предложение Try генерирует исключение, предложение Except выполняется. Это используется для предпринятия альтернативного действия, когда что-нибудь неожиданно идет не так, как надо. Однако, предложение except не может определить тип ошибки. Версия 2 Она подобна 1 версии, но определяет различные действия для различных типов исключений, типа EInOutError. Предложение Else может использоваться как перехватчик для всех неожиданных типов исключений. Общий тип исключения Exception может использоваться для захвата всех типов исключений. Назначение Имени (Name) исключения, текста сообщения исключения (Name.Message) может использоваться для отображения в сообщении или других использований. Когда исключение поднимается во 2 версии 2, то если исключение не обработано инструкциями On или Else, то выполняется проверка, находимся ли мы во вложенном блоке Try. Если да, то обрабатывается пункт Except своего родительского Try. Если нет или пункт Else не был найден, программа завершается. Предложение Else, в действительности, не является необходимым - лучше использовать On E:Exception Do, для универсальной обработки особых ситуаций, так как оно обеспечивает сообщение об ошибках (E.Message). Важно: Вы можете определить тип ошибки, которая произошла, используя универсальную обработку особых ситуаций - On E:Exception Do. Где E - указатель на объект исключения, который создан условием исключения. E.ClassName дает тип исключения, типа 'EDivByZero', как показано в конечном коде примера. |
Пример кода: Пример
|
Пример кода : Деление на ноль с простым блоком Except var number, zero : Integer; begin // Попытка делить целое число на нуль - чтобы поднять исключение Try zero := 0; number := 1 div zero; ShowMessage('number / zero = '+IntToStr(number)); Except ShowMessage('Неизвестная ошибка'); end; end; Неизвестная ошибка Пример кода : Деление на ноль с предложением Except On var number, zero : Integer; begin // Попытка делить целое число на нуль - чтобы поднять исключение Try zero := 0; number := 1 div zero; ShowMessage('number / zero = '+IntToStr(number)); Except on E : Exception do ShowMessage(E.ClassName+' ошибка с сообщением : '+E.Message); end; end;
Результат:
|
EDivByZero ошибка с сообщением :Division by zero |