Na žalost gradbene aplikacije vključujejo kodiranje. Ne glede na to, kako skrbno pišete / odpravljate program, si bo nemogoče predstavljati vsako situacijo, ki lahko gre narobe. Neizkušeni uporabnik lahko na primer poskusi odpreti neobstoječo datoteko ali vnesti slabo vrednost v podatkovno polje.
Uporabniki delajo napake, zato bi morali biti pripravljeni ravnati / preprečevati te napake kadarkoli in kadar koli je to mogoče.
Napake, izjeme?
Izjema je pravilo napaka ali drug dogodek, ki prekine normalen potek izvrševanja v aplikaciji. Kadarkoli pride do napake pri obdelavi vrstice kode, Delphi ustvari (dvigne) objekt, potomec iz TObject-a, imenovan objekt izjeme.
Zaščitni bloki
Aplikacija se na izjemo odzove bodisi tako, da izvede neko zaključno kodo, obdela izjemo ali oboje. Način, kako v določeni kodi omogočiti lov napak / izjem, mora biti izjema v zavarovanem bloku stavkov. Splošna koda izgleda:
poskusi. {zaščiten blok kode} razen. na začetku se začnejo. {izjema blok ročaji SomeException} konec; konec;
A poskusi / razen stavek izvede izjave v zavarovanem bloku kode. Če se izjave izvajajo brez kakršnih koli izjem, se blok izjem izključi in nadzor se prenese na stavek po končni ključni besedi.
Primer:
... Nič: = 0; poskusi. lutka: = 10 / nič; razen. na EZeroDivide do. MessageDlg ('Ne moremo razdeliti na nič!', MtError, [mbOK], 0); konec;...
Zaščita virov
Ko odsek kode pridobi vir, je pogosto treba zagotoviti, da se vir ponovno sprosti (ali boste morda dobili a puščanje spomina), ne glede na to, ali se koda normalno dopolni ali je prekinjena z izjemo. V tem primeru se uporablja skladnja končno ključna beseda in izgleda:
{nekaj kode za dodelitev virov} poskusi. {zaščiten blok kode} končno. {ukinitev blok - koda za proste vire} konec;
Primer:
... AboutBox: = T AboutBox. Ustvari (nič); poskusi. AboutBox. ShowModal; končno. AboutBox. Sprostitev; konec;...
Uporaba. OnEceception
Če vaša aplikacija ne obravnava napake, ki je povzročila izjemo, bo Delphi uporabil privzeti rokovalec izjeme - le pojavil se bo polje s sporočilom. Lahko bi razmislili o pisanju kode v dogodku OnException za objekt TApplication, da bi ujeli napake na ravni aplikacije.
Break On Izjeme
Ko gradite program z ravnanjem izjem, morda ne želite, da se Delphi prebija na izjeme. To je odlična funkcija, če želite, da Delphi prikaže, kje je prišlo do izjeme; Vendar pa je lahko nadležno, ko preizkušate lastno ravnanje z izjemami.
Nekaj končnih besed
Ideja tega članka je, da vam le na hitro ogledate, kaj so izjeme. Za nadaljnjo razpravo o ravnanju z izjemami upoštevajte O ravnanju z izjemami v obdelavi izjem Delphi, z uporabo orodja, kot je Delphi Crash / Izjema Ravnanje s poročanjem o napakah in nekaj naslednjih povezanih člankov: