Construcțiile ly și t în delphi

Programele Delphi au o gestionare excepțională implicită, care, în unele cazuri, poate fi suficientă. built-in scopuri de manipulare excepție, în primul rând, pentru a obține mai multe informații despre eroare și / sau locul de origine, și, pe de altă parte, includerea de cod nativ pentru tratamentul aplicat în cazul în care tratamentul standard nu este îndeplinită.







Pentru a forța programele pe Delphi să utilizeze mecanismul de gestionare a excepțiilor, este necesar să plasați operatorii corespunzători în construcții de limbi speciale.

Încercați construcția. În cele din urmă. capăt

Construcția Try.Finally garantează că programul execută operatorii care eliberează resurse, indiferent dacă a fost sau nu o excepție. Astfel, această construcție este utilizată atunci când este destul de suficientă pentru a termina programul în siguranță după o excepție. Excepțiile la astfel de construcții nu sunt prelucrate, prelucrarea acestora va fi transferată în continuare. Dacă nu este furnizată nicio altă prelucrare, atunci controlul va fi trecut la dispozitivul de procesare implicit.

Sintaxa constructului este după cum urmează:

<операторы захвата ресурсов>încerca
<операторы, которые могут вызвать исключение>În cele din urmă
<операторы, освобождающие ресурсы>End;

Trebuie remarcat faptul că, dacă nu se ridică o excepție, operatorii din secțiunea Final vor lansa și resurse. Diferența este că:






• În primul rând, când apare o excepție, unele dintre instrucțiunile din secțiunea Încercați nu sunt executate și, în timpul funcționării normale, toate sunt executate;
• în al doilea rând, după eliberarea de resurse din cauza lista de excitatie excepție de tratare excepție va continua ca excepții de la această structură nu sunt prelucrate, dar în timpul funcționării normale, operatorul va fi executat în urma construcției Try..Finally.
Dacă este posibil, obțineți resurse diferite înainte de construirea Try. Acest lucru asigură că secțiunea Final poate elibera în mod corespunzător resursele.

C: = Cursor;
Cursor: = crGlass;
edDivr.Visible: = false;
încerca
A / B
în cele din urmă
Cursor: = C;
edDivr.Visible: = adevărat;
se încheie;

Încercați construcția. Cu excepția. capăt

Operatorii din secțiunea Exceptă sunt executați numai atunci când sunt ridicate excluderi, dar niciodată cu funcționarea normală a programului. Mai mult decât atât, în secțiunea Except pot exista mai mulți operatori de excepție, fiecare dintre aceștia fiind orientat către un anumit tip de excepție. După executarea instrucțiunilor din secțiunea Except, excepțiile sunt șterse și programul continuă cu instrucțiunea urmând constructul Try..Except.

Sintaxa constructului este după cum urmează:

Ca și până acum, operatorii secțiunii Try pot arunca excepții. Secțiunea Except conține operatori care execută codul de curățare, cod de terminare. Cu toate acestea, în cazul în care nu apare o eroare, operatorii din secțiunea Except sunt săriți.

Operatorii secțiunii Try în ambele construcții sunt numiți cod protejat.

încerca
A / B;
cu excepția
lbRes.Caption: = 'Niht';
// creșterea;
se încheie;

Construcții înfundate Încearcă

Delphi vă permite să utilizați construcții de manipulare a excepțiilor imbricate. Adâncimea încorporării și secvența construcțiilor nu sunt limitate. Sintaxa generală a construcțiilor imbricate Încercați:

Deci, ca un design Try..Finally într-adevăr nu se ocupa cu excepția, apoi încadrați în interiorul structurii try..except, folosim modele Try..Finally pot returna resursele sistemului, și numai apoi cu ajutorul designului try..except mâner excepția .







Articole similare

Trimiteți-le prietenilor: