Nažalost, aplikacije za izgradnju uključuju kodiranje. Bez obzira koliko pažljivo pišete / ispravljate program, nemoguće je zamisliti svaku situaciju koja može poći po zlu. Neiskusni korisnik, na primjer, može pokušati otvoriti nepostojeću datoteku ili unijeti lošu vrijednost u podatkovno polje.
Korisnici čine pogreške i trebali bismo biti spremni rukovati / spriječiti te pogreške kad god i kad god je to moguće.
Pogreške, izuzeci?
Izuzetak je općenito stanje pogreške ili neki drugi događaj koji prekida normalan tijek izvršenja u aplikaciji. Kad god dođe do pogreške zbog obrade retka koda, Delphi stvara (podiže) objekt potomak iz TObject-a nazvan objekt izuzeća.
Čuvani blokovi
Aplikacija odgovara na iznimku bilo izvršavanjem nekog koda raskida, rukovanjem s iznimkom ili oboje. Način omogućavanja hvatanja pogreške / iznimke u zadanom kodu, iznimka se mora dogoditi unutar zaštićenog bloka izjava. Opći kod izgleda ovako:
probati. {čuvani blok koda} osim. počinju. {izuzetak blok ručke SomeException} kraj; kraj;
probati / osim Izjava izvršava izjave u čuvanom bloku koda. Ako se izjave izvršavaju bez postavljanja izuzetaka, blok iznimke se zanemaruje, a kontrola se prenosi na iskaz nakon ključne riječi na kraju.
Primjer:
... Nula: = 0; probati. lutka: = 10 / Nula; osim. na EZeroDivide do. MessageDlg ('Ne mogu se podijeliti s nulom!', MtError, [mbOK], 0); kraj;...
Zaštita resursa
Kad odjeljak koda stekne resurs, često je potrebno osigurati da se resurs ponovo pusti (ili bi mogli dobiti curenje memorije), bez obzira da li se kôd normalno dovršava ili ga prekida iznimka. U ovom se slučaju koristi sintaksa konačno ključna riječ i izgleda:
{neki kôd za dodjelu resursa} probati. {čuvani blok koda} konačno. {blok prekida - kod za besplatne resurse} kraj;
Primjer:
... AboutBox: = TAboutBox. Stvoriti (nula); probati. AboutBox. ShowModal; konačno. AboutBox. pustite; kraj;...
Primjena. OnException
Ako vaša aplikacija ne podnese grešku koja je uzrokovala iznimku, tada će Delphi upotrijebiti svoj zadani alat za obradu izuzetaka - samo će se pojaviti okvir s porukama. Možete razmotriti upisivanje koda u događaju OnException za objekt TApplication kako biste uhvatili pogreške na razini aplikacije.
Break On Izuzeci
Prilikom izrade programa s rukovanjem iznimkama, možda nećete htjeti da se Delphi prekida s Izuzecima. Ovo je sjajna značajka ako želite da Delphi pokaže gdje se dogodila iznimka; međutim, može biti neugodno kad testirate vlastito rukovanje iznimkama.
Malo završnih riječi
Ideja ovog članka je da vam brzo pogledate što su iznimke. Za daljnju raspravu o postupanju s iznimkama razmislite O rukovanju iznimkama u rukovanju izuzecima Delphi, pomoću alata poput Delphi rukovanje padom / iznimkom s izvještavanjem o pogreškama i neki od sljedećih povezanih članaka: