Разместите нашу кнопку!

Новые статьи:

Programming articles

Создание сайтов на шаблонах

Множество вариантов работы с графикой на канве

Шифруем файл с помощью другого файла

Перехват API функций - Основы

Как сделать действительно хороший сайт

Создание почтового клиента в Delphi 7

Применение паскаля для решения геометрических задач

Управление windows с помощью Delphi

Создание wap сайта

Операционная система unix, термины и понятия

SQL враг или друг

Возникновение и первая редакция ОС UNIX

Оптимизация проекта в Delphi

Ресурсы, зачем нужны ресурсы

Термины программистов 20 века

Советы по созданию собственного сайта с нуля

Шифруем файл с помощью пароля

Фракталы - геометрия природы

Crypt - Delphi программа для шифрования

Рассылка, зачем она нужна и как ее организовать?

Учебник по C++ для начинающих программистов

Уроки для изучения ассемблера

Загадочный тип PCHAR

Средства по созданию сайтов

Операторы преобразования классов is и as

Borland Developer studio 2006. Всё в одном

Создание базы данных в Delphi, без сторонних БД


Software engineering articles



Except

Начинает блок обработки ошибок в операторе Try

  1. Try
         Statement
       {Statement...}
    Except
         Statement
       {Statement...}
    End;
  2. Try
         Statement
       {Statement...}
    Except
         On {Name :} Exception type Do Statement
       {Else Statement}
    End;

Описание:

    Ключевое слово Except используется для отметки о начале блока операторов, которые обрабатывают исключение в операторе Try. Если блок Except может обработать исключение, то программа не завершается.

     Except имеет два разных синтаксиса:

     Версия 1
     В этой версии, если в операторе Try возбуждается исключение, то выполняется блок Except. Этот вариант используется для совершения альтернативных действий, когда что-то пошло не так. Однако, блок except в этом случае не может определить тип ошибки.

     Версия 2
     Она подобна версии 1, но задает разные действия для разных типов исключений, таких как EInOutError. Оператор Else может быть использован для обработки всех непредвиденных типов исключений. Общий тип исключения Exception может быть использован для обработки всех типов исключений.

     Текст с сообщением исключения (Имя.Сообщение - Name.Message) может быть получен посредством присваивания исключению имени, для показа на экране или других целей.

     При возбуждении исключения, как во второй версии, если исключение не было обработано в операторах On или Else, осуществляется проверка, не находимся ли мы во вложенном блоке Try. Если это так, то обработка передается блоку Except родительского Try. Если в нем не найдено ни одного On или Else, программа завершается.

     Оператор Else на самом деле не очень нужен - лучше использовать On E:Exception Do, основной способ обработки исключений, тем более что он предоставляет доступ к тексту ошибки (E.Message).

     Важно: вы можете определить тип случившейся ошибки, используя основной способ обработки исключений - On E:Exception Do. E - это указатель на объект исключения, который был создан в соответствии с условием исключения. E.ClassName содержит тип исключения, такой как 'EDivByZero', как это показано в последней части кода примера.

Пример кода:

var
   number, zero : Integer;
begin
   // Try to divide an integer by zero - to raise an exception
   Try
      zero := 0;
      number := 1 div zero;
      ShowMessage('number / zero = '+IntToStr(number));
   Except
      ShowMessage('Unknown error encountered');
   end;
end;

Результат выполнения:

Unknown error encountered

Пример кода:

var
   number, zero : Integer;
begin
   // Try to divide an integer by zero - to raise an exception
   Try
     zero := 0;
     number := 1 div zero;
     ShowMessage('number / zero = '+IntToStr(number));
   Except
     on E : Exception do
       ShowMessage(E.ClassName+' error raised, with message : '+E.Message);
   end;
end;

Результат выполнения:

EDivByZero error raised with message : Division by zero