Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
BulgaraCeha slovacaCroataEnglezaEstonaFinlandezaFranceza
GermanaItalianaLetonaLituanianaMaghiaraOlandezaPoloneza
SarbaSlovenaSpaniolaSuedezaTurcaUcraineana

BiologieBudovaChemieEkologieEkonomieElektřinaFinanceFyzikální
GramatikaHistorieHudbaJídloKnihyKomunikaceKosmetikaLékařství
LiteraturaManagementMarketingMatematikaObchodPočítačůPolitikaPrávo
PsychologieRůznéReceptySociologieSportSprávaTechnikaúčetní
VzděláníZemědělstvíZeměpisžurnalistika

Výjimky a chráněné bloky

počítačů



+ Font mai mare | - Font mai mic



DOCUMENTE SIMILARE

TERMENI importanti pentru acest document

Výjimky a chráněné bloky

Výjimky

Delphi poskytuje mechanismus, který dokáže značnou měrou přispět k větší robustnosti aplikací, což znamená, že aplikace reaguje na chyby konzistentním způsobem, dokáže podle možností zajistit zotavení ze vzniklé chyby a případně uzavřít rozpracovanou činnost bez ztráty dat nebo systémových prostředků Windows.



Vznik chyby je v Delphi je obsloužen vytvořením výjimky. Výjimka je objekt, který obsahuje informaci o tom, jaká chyba se stala a kde vznikla.

Když se vyskytne chybový stav, aplikace vyvolá výjimku, to znamená, že vytvoří objekt výjimka. Jakmile je výjimka vyvolaná, vaše aplikace může provést buď čistící kód (provede se vždy) nebo obsloužit výjimku, nebo obojí.

Provedení čistícího kódu


Nejjednodušší způsob jak reagovat na výjimku je zajistit, aby se provedl čistící kód. Tento druh odpovědi neopraví příčinu, která způsobila chybu, ale dovolí vám, aby jste vy zajistili, že vaše aplikace nenechá systém v nestabilním stavu.
Typicky tento druh odpovědi použijete k zajištění, aby aplikace uvolnila přidělené zdroje, bez ohledu na to zda nastala chyba nebo ne.

Obsloužení výjimky


Obsloužení výjimky znamená vytvoření určité odpovědi k určitému druhu výjimky. Ta odstraní chybový stav a zruší objekt výjimky, který umožní pokračování aplikace.
Typicky definujete obsloužení výjimky k dovolení vaší aplikaci uzdravit se z chyb a pokračovat v běhu. Druhy výjimek, které můžete obsloužit zahrnují pokusy jako otevřít soubory které neexistují, zápis na plné disky, nebo výpočty překročí legální hranice. Nějaké z nich, jako 'Soubor nenalezen ,' jsou snadno opravitelné a obnoví proces, zatímco jiné, jako vyčerpá paměť, mohou aplikaci nebo uživateli způsobit větší komplikace při opravě .

Objektový PASCAL usnadňuje začlenění obsluhy chyb do vašich aplikací, protože výjimky nejdou cestu normálního toku kódu programu. Ve skutečnosti , pohyblivá kontrola chyb a obsluha chyb mimo hlavní tok vašich algoritmů, výjimky vám mohou zjednodušit kód, který vy píšete.
Když deklarujete ochranný blok, definujete specifickou odpověď výjimky, která by mohla nastat během toho bloku.
Když se výjimka vyskytuje v tomto bloku, okamžitě se skočí na odpověď, kterou jste nadefinovali a potom opustí blok.

Chráněné programové bloky

Programový kód robustní aplikace musí rozpoznat vznik výjimky a musí na ní reagovat. Pokud nespecifikujeme reakci, aplikace bude ukončena zprávou identifikující chybu. Úkolem programátora je tedy identifikovat místa, kde může chyba vzniknout a definovat odpovídající reakci, především v těch částech programu, kde může chyba způsobit ztrátu dat nebo systémových prostředků.

Reakce na výjimku je vždy vázána na programový blok. Potřebujeme-li tedy pro posloupnost programových příkazů určitou reakci na chybu, uzavřeme tyto příkazy do bloku a definujeme reakci na chybu pro tento blok.

Bloky s definovanou reakcí na výjimky se nazývají chráněné bloky, protože jsou částečně chráněny proti chybám, které jinak mohou způsobit havárii aplikace nebo poškodit data. Chráněný blok začíná klíčovým slovem try a končí klíčovým slovem end.

Příklad:

try
a:=0;
b:=100/a;
Edit1.Text:=‘Tohle se nikde nenapíše‘;
except
Edit1.Text:=‘Bylo děleno nulou‘;
end



Při převodu čísel z typu string na typ extended lze použít metodu val:

var code: integer;
vystup: extended;
begin
// test vstupnich hodnot, ERROR -> defaultní hodnoty
val(Edit1.Text,vystup,code);
if code<>0 then
Edit2.Text:=‘V Edit1 boxu nebylo číslo, které se dá převést‘;
Edit2.Text:=‘Obsah Edit1 boxu byl převeden na číslo a je uložen v proměnné vystup‘;

end;



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 520
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved