Výjimka (programování): Porovnání verzí

Smazaný obsah Přidaný obsah
m Přidán odkaz
Lukazuko (diskuse | příspěvky)
m oprava linků na rozcestník
Řádek 3:
== Historie a současnost výjimek ==
První historické záznamy o výjimkách pochází z roku 1964 v souvislosti s programovacím jazykem [[PL/I]] vyvíjeným společností [[IBM]]. Původně byly výjimky používány pro [[ladění programu]], v současné době jsou však plnohodnotnou součástí většiny programovacích jazyků jakožto mechanismus pro zacházení s chybovými stavy.
Jedním z prvních programovacích jazyků, které mechanismy zpracování výjimek implementovaly a uvedly do praxe je jazyk ML vyvíjený v 70. letech (1. vydání v roce 1973). Mezi další programy, které využívají výjimek, patří [[Ada (programovací jazyk)|Ada]], [[C++]], [[Eiffel (programovací jazyk)|Eiffel]], [[Python]], [[Ruby (programovací jazyk)|Ruby]], [[Java (programovací jazyk)|Java]] a mnohé další.
 
== Zpracování výjimek ==
Řádek 20:
 
== Podpora výjimek v programovacích jazycích ==
Programovací jazyky s implicitně zabudovanou podporou zpracování výjimek zahrnují, ale neomezují se jen na: [[Ada (programovací jazyk)|Ada]], [[C++]], [[C Sharp|C#]] a jiné programovací jazyky platformy [[.NET]], [[Eiffel (programovací jazyk)|Eiffel]], [[Java (programovací jazyk)|Java]], [[Object Pascal]] (např. [[Delphi]]), [[PHP]] verze 5a vyšší, [[Prolog (programovací jazyk)|Prolog]], [[Python]], [[Ruby (programovací jazyk)|Ruby]] a mnohé další.
Zpracování výjimek v těchto programovacích jazycích téměř výhradně neobnovuje chod programu a ve většině případů dochází k postupnému zpětnému procházení zásobníku, než je nalezen příslušný objekt zpracovávající výjimku.
Abstrahujeme-li od drobných syntaktických rozdílů, existuje velmi málo přístupů ke zpracování výjimek na úrovni zdrojového kódu. Nejrozšířeněji je proces zpracování výjimky spuštěn klauzulí „throw“ nebo „raise“, případně objektem výjimky. Blok s výjimkou obvykle začíná klauzulí „try“ nebo „begin“, jednotlivé chybové stavy jsou poté označeny bloky „catch“ nebo „except“. Celý blok zpracování výjimky je ukončen sekcí „finally“ nebo „ensure“, která slouží pro uvolnění systémových zdrojů použitých při zpracování výjimky.