Разработка прикладных программ для ОС WINDOWS с помощью интегрированных сред Delphi / C++Builder. Баканов В.М. - 73 стр.

UptoLike

Составители: 

- 73 -
mtWarning, [mbOk], 0);
end; { конец блока try/except }
C++Builder.
В C++ вместо конструкции try/except используется блок
try/catch; при этом блок catch выполняется при наличии ИСС в предшест-
вующем блоке try согласно нижеприведенному скелетному коду
try // начало блока слежения за ИСС
//
// ... любой код, могущий сгенерировать исключение ...
//
catch(T Z) // выполняется при возникновении исключения Z
// типа Т в предшествующем try-блоке
//
// ... необходимая обработка ИСС ...
//
catch(...) // выполняется при любой ошибке в
// предшествующем блоке
//
// ... необходимая обработка ИСС ...
//
При использовании блока try/finally следующие за ключевым словом fi-
nally операторы выполняются в обязательном порядке после возникновения
ИСС (важно в определенных случаях, например, для освобождения ранее вы-
деленных блоков памяти)
try { включить отслеживание ИСС }
Operator'1;
Operator2;
Operator3;
finally { выполняется всегда ! }
Operator4;
end; { конец try / finally }
Имеется возможность определять реакции на определенные типы ИС, что
реализуется обработчиками ИСС (объектами класса Exception, причем про-
граммист может создавать - кроме имеющихся базовых - объекты этого клас-
са для обработки ожидаемых ИСС).
Например, в следующем примере (с помощью конструкции on... do... else)
отслеживаются стандартные ИСС EZeroDivide, EOutOfMemory и EInvalid-
Pointer
var
RealVal: real;
IntVal: integer;
                                        - 73 -


               mtWarning, [mbOk], 0);
end; { конец блока try/except }

    C++Builder. В C++ вместо конструкции try/except используется блок
try/catch; при этом блок catch выполняется при наличии ИСС в предшест-
вующем блоке try согласно нижеприведенному скелетному коду

try // начало блока слежения за ИСС
//
// ... любой код, могущий сгенерировать исключение ...
//
catch(T Z) // выполняется при возникновении исключения Z
              // типа Т в предшествующем try-блоке
//
// ... необходимая обработка ИСС ...
//
catch(...) // выполняется при любой ошибке в
           // предшествующем блоке
//
// ... необходимая обработка ИСС ...
//

   При использовании блока try/finally следующие за ключевым словом fi-
nally операторы выполняются в обязательном порядке после возникновения
ИСС (важно в определенных случаях, например, для освобождения ранее вы-
деленных блоков памяти)

try { включить отслеживание ИСС }
   Operator'1;
   Operator2;
   Operator3;
finally { выполняется всегда ! }
   Operator4;
end; { конец try / finally }

    Имеется возможность определять реакции на определенные типы ИС, что
реализуется обработчиками ИСС (объектами класса Exception, причем про-
граммист может создавать - кроме имеющихся базовых - объекты этого клас-
са для обработки ожидаемых ИСС).
    Например, в следующем примере (с помощью конструкции on... do... else)
отслеживаются стандартные ИСС EZeroDivide, EOutOfMemory и EInvalid-
Pointer

var
 RealVal: real;
 IntVal: integer;