cool web a perfektni rs- Doporucuji

Tuesday, June 19, 2007

Předjímání chyb

Mnohé chyby lze předjímat a kritické situace ošetřit ještě dříve, než k chybě může dojít. Předjímání chyb
se netýká jen chyb při běhu. Například, výskytu mnohých syntaktických chyb nebo zapeklitých logických
chyb zabráníte snadno tím, že důsledně používáte příkaz Option Explicit, který vyžaduje explicitní deklarace
všech použitých proměnných.
Podobně, chystáte-li se dělit a může přitom dojít k dělení nulou, můžete předem otestovat, je-li jmenovatel
roven nule, zařídit se podle toho a žádnou chybu zpracovávat nebudete muset. Podobně je to ostatně
i s naší chybou, kdy neexistuje soubor, který potřebujete, protože i to lze předjímat.
Dokonce nemusíte aplikaci nechat doběhnout až tak daleko. Těsně po jejím startu můžete otestovat, zda
existují všechny soubory, s nimiž má aplikace pracovat a pokud ne, rozhodnout podle závažnosti a třeba i
aplikaci ukončit – ne proto, že by byl například obrázek s výhrou pro aplikaci životně důležitý, ale proto, že
jeho nepřítomnost možná indikuje závažnější závady:
If "" = Dir(Application.StartupPath & "\Money.wmf") Then
Messagebox.Show _
("Chybí některé soubory aplikace. Doporučujeme aplikaci znovu nainstalovat.")
' Přiřazení náhradního obrázku
' nebo ukončení aplikace
' nebo jiné řešení této situace
End If
Při prohlížení kódu aplikací Visual Basicu někdy zjistíte, že se používají chybové rutiny, i když by se
chyby daly předjímat (například zda existuje uživatel daného jména, zda existuje nebo neexistuje dotaz
s daným názvem v databázi, s níž pracujete apod.).
Dělá se to z toho důvodu, že předjímání chyby by bylo neefektivní (aby se zjistilo, zda existuje dotaz
v databázi, musela by se projít kolekce – možná objemná - všech dotazů a testovat, zda se názvy shodují).
V takových případech je výhodnější předpokládat, že (nový) objekt, s nímž chcete pracovat neexistuje (nebo
existující existuje) a pokusit se vykonat požadovanou činnost.přímo. V tom nepatrném procentu případů, kdy
dojde k výjimečné situaci, se pak uplatní chybová rutina.

Labels: