Операторы += и -= для процедурных переменных 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Операторы += и -= для процедурных переменных

Поиск

Пример.

vara: array[1..10] ofinteger;
try

vari: integer;
readln(i);
writeln(a[i] div i);
...
except
on System.DivideByZeroException do
writeln('Деление на 0');
on e: System.IndexOutOfRangeException do
writeln(e.Message);
on System.FormatException do
writeln('Неверный формат ввода');
else writeln('Какое-то другое исключение');
end;

Оператор try ... finally

Оператор try ... finally имеет вид:

try
операторы
finally
операторы
end;

Операторы в блоке finally выполняются безотносительно к тому, возникло или нет исключение в блоке try. При этом само исключение не обрабатывается.

Блок finally используется для возвращения ранее выделенных ресурсов.

Пример 1. Закрытие открытого файла.

reset(f);
try
...
finally
close(f);
end;

Файл будет закрыт независимо от того, произошло ли ислючение в блоке try.

Пример 2. Возвращение выделенной динамической памяти.

New(p);
try
...
finally
Dispose(p);
end;

Динамич-ская память, контролируемая указателем p, будет возвращена независимо от того, произошло ли ислючение в блоке try.

Оператор raise

Оператор raise предназначен для возбуждения исключения и имеет вид: raise объект

Здесь объект - объект класса, производного от Exception. Например:   raise new Exception('Ошибка');

При возбуждении специфического исключения желательно определить свой тип исключения.

Для повторной генерации исключения внутри секции except используется также вызов raise без параметров: raise;

Оператор присваивания += предназначен для присоединения к процедурной переменной процедуры, оператор присваивания -= - для отсоединения. Подпрограммы вызываются в порядке присоединения. Например:

procedure mult2(var r: real);
begin
r := 2 * r;
end;

procedure add3(var r: real);
begin
r := r + 3;
end;

var
p: procedure (var x: real);
r: real;

begin
r := 1;
p := mult2;
p += add3;
p(r); // r := 2 * r; r := r + 3;
p -= mult2;
p(r); // r := r + 3;
end.

Отсоединение не присоединенных подпрограмм не выполняет никаких действий.

Кроме того, к процедурной переменной можно прикреплять/откреплять статические и экземплярные методы классов. Пример см. в теме процедурные переменные.

Операторы += и -= используются также для добавления/удаления обработчиков для событий .NET. Например:

procedure OnTimer1(sender: object; e: System.Timers.ElapsedEventArgs);
begin
write(1);
end;

begin
var Timer1 := new System.Timers.Timer(1000);
Timer1.Elapsed += OnTimer1;
Timer1.Start;
while True do
Sleep(1000);
end.



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 7; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.128.205.92 (0.008 с.)