Riešenie chýb a výnimiek v aplikáciách Delphi

Nanešťastie stavebné aplikácie zahŕňajú kódovanie. Bez ohľadu na to, ako starostlivo píšete / ladíte svoj program, nebude možné predstaviť si každú situáciu, ktorá sa môže pokaziť. Neskúsený používateľ sa môže napríklad pokúsiť otvoriť neexistujúci súbor alebo vložiť zlú hodnotu do dátového poľa.
Používatelia robia chyby a my by sme mali byť pripravení zvládnuť / predchádzať týmto chybám všade, kde je to možné.

Chyby, výnimky?

Výnimkou je spravidla chybový stav alebo iná udalosť, ktorá preruší normálny priebeh vykonávania v aplikácii. Kedykoľvek dôjde pri spracovaní riadku kódu k chybe, spoločnosť Delphi vytvorí (vyvolá) objekt potomka z TObject, ktorý sa nazýva výnimočný objekt.

Strážené bloky

Aplikácia reaguje na výnimku buď vykonaním nejakého ukončovacieho kódu, spracovaním výnimky alebo oboma spôsobmi. Spôsob, ako povoliť zachytenie chyby / výnimky v rámci daného kódu, sa musí výnimka vyskytnúť v rámci stráženého bloku príkazov. Všeobecný kód vyzerá takto:

pokúsiť. {strážený blok kódu} leč. na začiatok. {výnimkou blokových úchytov SomeException} end; koniec;
instagram viewer

skúste / okrem vyhlásenie vykoná príkazy v stráženom bloku kódu. Ak sa príkazy vykonajú bez zvýšenia akýchkoľvek výnimiek, blok výnimiek sa ignoruje a kontrola sa odovzdá príkazu nasledujúcemu za koncovým kľúčovým slovom.

Príklad:

... Nula: = 0; pokúsiť. figurína: = 10 / nula; leč. na EZeroDivide do. MessageDlg („Nedá sa deliť nulou!“, MtError, [mbOK], 0); koniec;... 

Ochrana zdrojov

Keď časť kódu získa prostriedok, je často potrebné zabezpečiť, aby sa zdroj uvoľnil znova (alebo by ste mohli získať únik pamäte), bez ohľadu na to, či sa kód vyplní normálne alebo či je prerušený výnimkou. V tomto prípade sa použije syntax konečne kľúčové slovo a vyzerá takto:

{nejaký kód na pridelenie zdrojov} pokúsiť. {strážený blok kódu} Konečne. {terminačný blok - kód pre voľné zdroje} koniec;

Príklad:

... AboutBoxu: = TAboutBox. Vytvoriť (nula); pokúsiť. AboutBoxu. ShowModal; Konečne. AboutBoxu. uvoľniť; koniec;... 

Aplikácie. OnException

Ak vaša aplikácia nezvládne chybu, ktorá spôsobila výnimku, potom spoločnosť Delphi použije predvolený obsluhujúci program výnimiek - iba otvorí okno so správou. Môžete zvážiť zápis kódu v udalosti OnException pre objekt TApplication, aby ste zachytili chyby na úrovni aplikácie.

Výnimky prerušenia

Pri zostavovaní programu s manipuláciou s výnimkami možno nebudete chcieť Delphi prerušiť výnimky. Je to vynikajúca funkcia, ak chcete, aby spoločnosť Delphi ukázala, kde došlo k výnimke; to však môže byť nepríjemné, keď otestujete svoju vlastnú výnimku.

Niekoľko záverečných slov

Cieľom tohto článku je poskytnúť rýchly prehľad o tom, aké sú výnimky. Pre ďalšiu diskusiu o riešení výnimiek zvážte O spracovaní výnimiek pri manipulácii s výnimkami spoločnosti Delphi, pomocou nástroja ako Spracovanie havárií / výnimiek Delphi pomocou hlásenia chýb a niektoré z nasledujúcich súvisiacich článkov: