Proč Selhávají Programy

Proč Selhávají Programy
Proč Selhávají Programy

Video: Proč Selhávají Programy

Video: Proč Selhávají Programy
Video: Výpadky systému 2024, Duben
Anonim

Rozmanitost úkolů dnes řešených pomocí osobních počítačů je zajištěna existencí obrovské sady aplikačních programů. Pohodlí práce se softwarem do značné míry závisí na jeho spolehlivosti, která se projevuje při absenci nouzových situací. Mnoho programů se však zhroutí v nejnevhodnější chvíli. Proč?

Proč
Proč

Mechanismus výjimek se používá ke sledování a řešení zvláštních, neobvyklých nebo chybných situací, které vznikají během provozu počítačových programů pod kontrolou moderních operačních systémů. Výjimkou může být hardware (vyvolaný procesorem) a software (vyvolán samotnou aplikací nebo nějakou externí komponentou plug-in programu).

Bez ohledu na typ lze výjimku zachytit a správně s ní zacházet. Uncaught exceptions go to the root runtime library handler or an operating system-installed handler. Pokud k tomu dojde, dojde k chybě programu se zprávou nebo neobvyklým ukončovacím oknem (ve Windows). Pokud obslužná rutina operačního systému nefungovala (například byla úmyslně odebrána), program „tiše selže“. Programy tedy padají kvůli výjimkám, které nelze zpracovat. Důvody pro výskyt výjimek jsou různé.

V drtivé většině případů dojde k selhání programů kvůli provedení jejich vlastního kódu obsahujícího chyby explicitní nebo implicitní implementace. Seznam možných příčin mimořádných událostí je velmi dlouhý. Jsou to jak klasické chyby operací s čísly s plovoucí desetinnou čárkou (například dělení 0), tak chyby práce s pamětí (čtení nebo zápis mimo prostor adres procesu, přístup k chráněným stránkám, zápis do oblasti paměti jen pro čtení), přetečení zásobníku kvůli nekonečné rekurzi atd. V těchto případech jsou vyvolány hardwarové výjimky nebo výjimky operačního systému.

Implicitní chyby zahrnují různé případy nedostatečného filtrování vstupních dat, nedostatečné ověření hodnot ukazatelů a mnoho dalšího. Takové nedostatky vedou k výjimečným situacím pouze v určitých případech.

Chyby implementace lze nalézt také v externích komponentách používaných aplikací. Například v dynamických knihovnách, které poskytují potřebné funkce nebo doplňkové moduly. Programový kód, který je implicitně načten do adresního prostoru procesu (například za účelem zachycení určitých funkcí API), může také způsobit selhání programu.

Mnoho komponent a knihoven (například ADO v systému Windows) používá mechanismus programové výjimky jako prioritu pro hlášení chyb. Absence nebo neúplné zpracování výjimek tímto typem aplikace může vést k jejímu selhání i ve zcela neškodných situacích (například při ztrátě připojení k databázi).

Doporučuje: