Zpracování chyb a výjimek v aplikacích Delphi

click fraud protection

Stavební aplikace bohužel zahrnují kódování. Bez ohledu na to, jak pečlivě píšete / ladíte program, nebude možné si představit každou situaci, která se může pokazit. Nezkušený uživatel by se například mohl pokusit otevřít neexistující soubor nebo vložit špatnou hodnotu do datového pole.
Uživatelé dělají chyby a my bychom měli být připraveni řešit / předcházet těmto chybám, kdekoli a kdykoli je to možné.

Chyby, výjimky?

Výjimkou je obvykle chybový stav nebo jiná událost, která přerušuje normální tok provádění v aplikaci. Kdykoli při zpracování řádku kódu dojde k chybě, Delphi vytvoří (vyvolá) objekt potomka z TObjectu nazvaný výjimkový objekt.

Strážené bloky

Aplikace reaguje na výjimku buď spuštěním nějakého ukončovacího kódu, zpracováním výjimky, nebo obojím. Způsob, jak povolit soutisk chyb / výjimek v daném kódu, se musí výjimka vyskytnout v rámci chráněného bloku příkazů. Obecný kód vypadá takto:

Snaž se. {hlídaný blok kódu} až na. na začátek. {výjimka block-handleles SomeException} end; konec;
instagram viewer

A zkuste / kromě Příkaz provede příkazy v chráněném bloku kódu. Pokud jsou příkazy spuštěny bez vyvolání výjimek, blok výjimek je ignorován a řízení je předáno příkazu, který následuje za koncovým klíčovým slovem.

Příklad:

... Nula: = 0; Snaž se. figurína: = 10 / nula; až na. na EZeroDivide do. MessageDlg ('Nelze dělit nulou!', MtError, [mbOK], 0); konec;... 

Ochrana zdrojů

Když část kódu získá prostředek, je často nutné zajistit, aby byl zdroj uvolněn znovu (nebo můžete získat únik paměti), bez ohledu na to, zda je kód dokončen normálně nebo je přerušen výjimkou. V tomto případě se použije syntaxe Konečně klíčové slovo a vypadá jako:

{nějaký kód pro přidělování zdrojů} Snaž se. {hlídaný blok kódu} Konečně. {ukončení blok - kód pro volné zdroje} konec;

Příklad:

... AboutBox: = TAboutBox. Vytvořit (žádné); Snaž se. AboutBox. ShowModal; Konečně. AboutBox. Uvolnění; konec;... 

Aplikace. OnException

Pokud vaše aplikace nezpracuje chybu, která způsobila výjimku, použije Delphi výchozí popisovač výjimek - pouze otevře okno se zprávou. Můžete zvážit zápis kódu v události OnException pro objekt TApplication, abyste zachytili chyby na úrovni aplikace.

Výjimky na konec

Při vytváření programu s manipulací s výjimkami možná nebudete chtít Delphi přerušit výjimky. To je skvělá funkce, pokud chcete, aby Delphi ukazovalo, kde došlo k výjimce; to však může být nepříjemné, když otestujete vlastní zacházení s výjimkami.

Několik posledních slov

Myšlenkou tohoto článku je poskytnout vám rychlý pohled na to, jaké jsou výjimky. Pro další diskusi o řešení výjimek zvažte O zpracování výjimek při zpracování výjimek Delphi, pomocí nástroje jako Delphi Crash / Exception Handling with Bug Reporting a některé z následujících souvisejících článků:

instagram story viewer