32 Урока Borland Delphi

         

Первый тип используется для обработки


  • try..except
  • try..finally
Первый тип используется для обработки исключительных ситуаций. Его синтаксис:
 
 
try
Statement 1;
Statement 2;
...
except
on Exception1 do Statement;
on Exception2 do Statement;
...
else
Statements; {default exception-handler}
end;
Для уверенности в том, что ресурсы, занятые вашим приложением, освободятся в любом случае, Вы можете использовать конструкцию второго типа. Код, расположенный в части finally, выполняется в любом случае, даже если возникает исключительная ситуация. Соответствующий синтаксис:
try
Statement1;
Statement2;
...
finally
Statements; { These statements always execute }
end;
 
 
      1. Примеры обработки исключительных ситуаций


      Ниже приведены процедуры A,B и C, обсуждавшиеся ранее, воплощенные в новом синтаксисе Object Pascal:
       
       
      type
      ESampleError = class(Exception);
      var
      ErrorCondition: Boolean;
      procedure C;
      begin
      writeln('Enter C');
      if (ErrorCondition) then
      begin
      writeln('Raising exception in C');
      raise ESampleError.Create('Error!');
      end;
      writeln('Exit C');
      end;
      procedure B;
      begin
      writeln('enter B');
      C;
      writeln('exit B');
      end;
      procedure A;
      begin
      writeln('Enter A');
      try
      writeln('Enter A''s try block');
      B;
      writeln('After B call');
      except
      on ESampleError do
      writeln('Inside A''s ESampleError handler');
      on ESomethingElse do
      writeln('Inside A''s ESomethingElse handler');
      end;
      writeln('Exit A');
      end;
      begin
      writeln('begin main');
      ErrorCondition := True;
      A;
      writeln('end main');
      end.
      При ErrorCondition = True программа выдаст:
      begin main
      Enter A
      Enter A's try block
      enter B
      Enter C
      Raising exception in C
      Inside A's ESampleError handler
      Exit A
      end main
      Возможно вас удивила декларация типа 'ESampleError =class' вместо '=object'; это еще одно новое расширение языка. Delphi вводит новую модель объектов, доступную через декларацию типа '=class'. Описание новой объектной модели дается в других уроках. Здесь же достаточно сказать, что исключительные ситуации (exceptions) являются классами, частью новой объектной модели.

      Содержание  Назад  Вперед







      Forekc.ru
      Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий