Kļūdu un izņēmumu apstrāde Delphi lietojumprogrammās

Diemžēl ēku lietojumprogrammās ir iekļauta kodēšana. Neatkarīgi no tā, cik uzmanīgi jūs rakstāt / atkļūdojat savu programmu, nebūs iespējams iedomāties katru situāciju, kas var noiet greizi. Piemēram, nepieredzējis lietotājs var mēģināt atvērt neeksistējošu failu vai datu laukā ievadīt sliktu vērtību.
Lietotāji pieļauj kļūdas, un mums vajadzētu būt gataviem rīkoties / novērst šīs kļūdas visur un kur vien iespējams.

Kļūdas, izņēmumi?

Izņēmums parasti ir kļūdas apstāklis ​​vai cits notikums, kas pārtrauc parasto izpildes plūsmu lietojumprogrammā. Ikreiz, kad rodas koda rindas apstrādes kļūda, Delfi izveido (paaugstina) TObject pēcnācēju, ko sauc par izņēmuma objektu.

Apsargāti bloki

Lietojumprogramma reaģē uz izņēmumu, izpildot kādu izbeigšanas kodu, apstrādājot izņēmumu vai abus. Veids, kā iespējot kļūdu / izņēmumu slazdošanu noteiktā kodā, izņēmumam jānotiek apsargātā paziņojumu blokā. Vispārīgais kods izskatās šādi:

mēģiniet. {sargāts koda bloks} izņemot. par to sākas. {izņēmums block-handles SomeException} beigas; beigas;
instagram viewer

A izmēģināt / izņemot paziņojums izpilda paziņojumus apsargātā koda blokā. Ja paziņojumi tiek izpildīti, neizvirzot nekādus izņēmumus, izņēmumu bloks tiek ignorēts, un kontrole tiek nodota paziņojumam, kas seko beigu atslēgvārdam.

Piemērs:

... Nulle: = 0; mēģiniet. manekens: = 10 / Nulle; izņemot. vietnē EZeroDivide darīt. MessageDlg ('Nevar dalīt ar nulli!', MtError, [mbOK], 0); beigas;... 

Resursu aizsardzība

Kad koda sadaļa iegūst resursu, bieži vien ir jāpārliecinās, ka resurss tiek atkārtoti izlaists (vai arī jūs varētu iegūt atmiņas noplūde) neatkarīgi no tā, vai kods tiek pabeigts normāli vai tiek pārtraukts ar izņēmumu. Šajā gadījumā tiek izmantota sintakse beidzot atslēgvārds un izskatās šādi:

{kāds kods resursu piešķiršanai} mēģiniet. {sargāts koda bloks} beidzot. {beigu bloks - kods bezmaksas resursiem} beigas;

Piemērs:

... AboutBox: = TAboutBox. Izveidot (nulle); mēģiniet. ParBox. ShowModal; beidzot. ParBox. Atlaidiet; beigas;... 

Pieteikums. OnException

Ja jūsu lietojumprogramma nerisina kļūdu, kas izraisīja izņēmumu, Delphi izmantos noklusējuma izņēmumu apstrādātāju - tas vienkārši uznirs ziņojumu lodziņā. Jūs varat apsvērt koda rakstīšanu objektam OnException notikumā TApplication, lai ieslodzītu kļūdas lietojumprogrammas līmenī.

Pārtraukums izņēmumos

Veidojot programmu ar izņēmumu apstrādi, jūs, iespējams, nevēlaties, lai Delphi pārtrauktu izņēmumus. Šī ir lieliska īpašība, ja vēlaties, lai Delfi parāda, kur ir noticis izņēmums; tomēr tas var būt kaitinoši, ja pārbaudāt savu izņēmumu apstrādi.

Daži beigu vārdi

Šī raksta ideja ir tikai ātri aplūkot izņēmumus. Papildu diskusijām par izņēmumu izskatīšanu jāapsver Par apstrādes izņēmumiem Delphi izņēmumu apstrādē, izmantojot tādu rīku kā Delfi avāriju / izņēmumu apstrāde ar kļūdu ziņošanu un daži no šiem saistītajiem rakstiem:

instagram story viewer