Warning: Undefined array key "use_multisite" in /data/6/7/67564740-3aeb-4a38-9571-fbf9ff96a0d8/akoprogramovat.sk/web/wp-content/plugins/azurecurve-toggle-showhide/azurecurve-toggle-showhide.php on line 92
Warning: Undefined array key "title_font" in /data/6/7/67564740-3aeb-4a38-9571-fbf9ff96a0d8/akoprogramovat.sk/web/wp-content/plugins/azurecurve-toggle-showhide/azurecurve-toggle-showhide.php on line 106
Warning: Undefined array key "title_font_size" in /data/6/7/67564740-3aeb-4a38-9571-fbf9ff96a0d8/akoprogramovat.sk/web/wp-content/plugins/azurecurve-toggle-showhide/azurecurve-toggle-showhide.php on line 107
Warning: Undefined array key "title_font_weight" in /data/6/7/67564740-3aeb-4a38-9571-fbf9ff96a0d8/akoprogramovat.sk/web/wp-content/plugins/azurecurve-toggle-showhide/azurecurve-toggle-showhide.php on line 108
Warning: Undefined array key "text_color" in /data/6/7/67564740-3aeb-4a38-9571-fbf9ff96a0d8/akoprogramovat.sk/web/wp-content/plugins/azurecurve-toggle-showhide/azurecurve-toggle-showhide.php on line 113
Warning: Undefined array key "text_font" in /data/6/7/67564740-3aeb-4a38-9571-fbf9ff96a0d8/akoprogramovat.sk/web/wp-content/plugins/azurecurve-toggle-showhide/azurecurve-toggle-showhide.php on line 114
Warning: Undefined array key "text_font_size" in /data/6/7/67564740-3aeb-4a38-9571-fbf9ff96a0d8/akoprogramovat.sk/web/wp-content/plugins/azurecurve-toggle-showhide/azurecurve-toggle-showhide.php on line 115
Warning: Undefined array key "text_font_weight" in /data/6/7/67564740-3aeb-4a38-9571-fbf9ff96a0d8/akoprogramovat.sk/web/wp-content/plugins/azurecurve-toggle-showhide/azurecurve-toggle-showhide.php on line 116
Warning: Undefined array key "disable_image" in /data/6/7/67564740-3aeb-4a38-9571-fbf9ff96a0d8/akoprogramovat.sk/web/wp-content/plugins/azurecurve-toggle-showhide/azurecurve-toggle-showhide.php on line 117
Warning: Undefined array key "width" in /data/6/7/67564740-3aeb-4a38-9571-fbf9ff96a0d8/akoprogramovat.sk/web/wp-content/plugins/azurecurve-toggle-showhide/azurecurve-toggle-showhide.php on line 118
Warning: Undefined array key "title_tag" in /data/6/7/67564740-3aeb-4a38-9571-fbf9ff96a0d8/akoprogramovat.sk/web/wp-content/plugins/azurecurve-toggle-showhide/azurecurve-toggle-showhide.php on line 153
Chyby sú tou nepríjemnejšou časťou programovania, Aj keď je najlepšie sa chybám vyhýbať, nie vždy je to ľahké a pri väčších programoch skoro nemožné.
Pri písaní programov sa chyby objavia asi vždy a nie vždy je možné sa ich úplne zbaviť.
Rozdelenie chýb
Existujú rôzne spôsoby a druhy chýb. Jedna z chýb počítačových programov je označovaná kompilátorom za varovanie [warning]. Toto reálne nemusí spôsobiť žiadne problémy, ale občas môže nasmerovať keď ich niečo nefunguje.
Druhý typ chyby je kompilátorom označovaný priamo ako chyba [error]. Chyby sú už vážnejšie – zabránia kompilácií programu a teda nie sú reálne nebezpečné.
Tretí typ chyby už začína byť komplikovanejší na odstránenie. Objavíte ho až počas behu programu a to tým, že program padne. Tieto chyby sú niekedy neriešiteľné a môžu byť závislé od konkrétneho hardwareu, systému alebo softwareu, času alebo iných podmienok – riešeniu týchto chýb sa budeme venovať neskôr.
Posledný, štvrtý typ označuje najväčší problém a to chyby, ktoré nieje možné nijak odstrániť a môžu napáchať najviac škody. Sú to chyby, na ktoré vás program neupozorní ničím – a to ani pádom. Objavíte ich nesprávnym správaním programu, alebo reálnym poškodením údajov. Môže to byť napríklad zle zapísaný súbor, alebo zle vypočítaný vzorec.
Riešenie chýb
Najťažšie na riešení chýb, je ich objavenie. Keď sa vám toto podarí, máte s polovice vyhrané. Často sú to totiž úplne triviálne veci, ako zlé znamienko, zadanie zlého parametru a podobne. Pri prvých dvoch typoch nájdenie problému nieje problém, ich pozíciu vám totiž ukáže samotný kompilátor. Pri ostatných už musíte zapojiť hlavu a snažiť sa prísť na to, kde sa nachádza. Jeden zo spôsobov ako upresniť polohu je použitie debugovania. Vo visual studiu môžete nadstaviť tzv. breakpointy, čo sú body, na ktorých sa beh programu zastaví a čaká. Označíte ich tým, že prejdete na riadok s nimi a stlačíte F9, alebo kliknete na miesto vyznačené na obrázku, tam sa vám potom ukáže ikonka červenej „guličky“.
Klikni sem pre zobrazenie obrázkov
Tlačidlami F11 alebo F10 môžte následne program púšťať po krokoch. V spodnej časti obrazovky následne máte záložky Locals a Watch.
V nich máte zobrazený aktuálny stav premenných a môžete ich upravovať. Vďaka tomu je možné objaviť množstvo chýb.
Obídenie chýb
Ak vám program v nejakom bode padne alebo zahlási chybu, je možné túto chybu preskočiť a pokračovať ďalej. Na to sa používa kombinácia try-catch-finally. Tieto funkcie dokážu v prípade chyby zabezpečiť, že kód sa zotaví.
try { File.Read(filename); Console.WriteLine("Čítanie úspešne dokončene"); } catch { Console.WriteLine("Chyba pri čítaní"); }
Toto je try-catch kód pri čítaní zo súboru. najprv začne vykonávanie try segmentu a až v prípade chyby, sa spustí segment catch a kód pokračuje ďalej po celom try-catch. Segment try nikdy nebude dokončený a tak nebude vypísané „Čítanie úspešne dokončené“.
Catch môže obsahovať aj informácie o parametroch a tým zistiť a vypísať, aká chyba reálne vznikla.
catch (Exception ex) { Console.WriteLine("Čítanie neúspešné : " + ex.Message); }
Už sme si tiež povedali o finally. to je možné použiť podobne ako catch, a môžu byť obidva použité zároveň. Finally splní kód v každom prípade a to aj pokiaľ je v bloku try použitý return.
try { Console.WriteLine("Začiatok čítania"); File.Read(filename); Console.WriteLine("Čítanie úspešne dokončene"); } catch (Exception ex) { Console.WriteLine("Chyba pri čítaní"); } finally { Console.WriteLine("Koniec čítania"); }
Čo sa týka správy chýb, je to prakticky všetko a napriek tomu, že to bol kratší diel, nabudúce bude diel dlhší a bude venovaný generikám.