Výukový materiál zpracován v rámci projektu EU peníze školám Název školy Střední škola elektrostavební a dřevozpracující, Frýdek-Místek, příspěvková organizace Adresa školy Pionýrů 2069, 73801 Frýdek-Místek IČ 13644301 Název operačního programu OP Vzdělávání pro konkurenceschopnost Registrační číslo CZ.1.07/1.5.00/34.0149 Označení vzdělávacího materiálu VY_32_INOVACE_10_29ŠebM-19 Název tematické oblasti (sady) Technická cvičení -Základy programování v jazyce C# Název vzdělávacího materiálu Ošetření běhových chyb programu Druh učebního materiálu Cvičení v prostředí Microsoft Visual Studio Anotace Téma je určeno žákům studijního oboru elektro na získání základních znalostí a vědomostí v algoritmizaci a programování. Klíčová slova algoritmus,vývojový diagram,zdrojový text programu Vzdělávací obor, pro který je materiál určen 26-41-M/01 Elektrotechnika Ročník IV. Typická věková skupina 18 let Speciální vzdělávací potřeby žádné Autor Ing.Milan Šebestík Zhotoveno, (datum/období) 1.1. až 30.1..2013 Celková velikost 236 kB Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Milan Šebestík Dostupné z portálu www.ssed-fm.cz
9.Ošetření běhových chyb programu Výjimky Význam pojmu běhová chyba a způsob jejího ošetření si ukážeme na následujícím příkladu: Příklad 8 Vytvořte program, který bude prvádět funkci z = (y)x Proměnnou y budeme načítat z komponenty textBox1. Mocnitel x bude načítán z komponenty textBox2. Výsledek jako obsah proměnné z bude zobrazen v komponentě textBox3. Výpočet se bude provádět na kliknutí na tlačítko Button1. Pro funkci mocniny použijeme metodu Pow třídy Math, která má dva parametry.Prvním parametrem je číslo, které umocňujeme a druhým parametrem je mocnitel.Pokud je druhý parametr zlomek,pak touto metodou lze provádět také odmocninu.
Pracovní plocha –formulář komponenta Form1 Komponenty Label Komponenty textBox komponenta Button
double y = double.Parse(textBox1.Text); Zdrojový text programu private void button1_Click(object sender, EventArgs e) { double y = double.Parse(textBox1.Text); double x = double.Parse(textBox2.Text) double z = Math.Pow(y, x); textBox3.Text = Convert.ToString(z); }
Vzniklou běhovou chybu ukončíme příkazem Stop Debugging Spustíme nyní program a do editačního pole čísla,které chceme umocnit napíšeme místo čísla libovolné písmeno.Po kliknutí na tlačítko „Proveď výpočet“ dojde k zastavení programu a ve zdrojovém textu se objeví následující chybové hlášení, které se váže k žlutě označenému řádku: Vzniklou běhovou chybu ukončíme příkazem Stop Debugging Tento postup je pro programátora výhodný,neboť při běhu programu jej upozorní na místo,kde může vzniknou problém.Pro finální podobu prog- ramu však musíme toto místo ošetřit generováním výjimky,která zobrazí uživateli okénko se zprávou např.:“Zadali jste špatný údaj“. Po opravě v editačním poli program bude dále pokračovat ve své činnosti.
Postup ošetření běhových chyb: 1.Ve zdrojovém textu myší označíme řádky těla metody,kterou chceme chránit před výskytem běhové chyby. 2.Do vyznačené oblasti klepneme pravým tlačítkem myši a vybere- me položku Surround With. 3.Z nabídkového seznamu vybereme a poklepeme na položku try. Ve zdrojovém kódu přibudou slovíčka try, catch (Exception) a throw. 4.Slovíčka (Exception) a throw ve zdrojovém textu smažeme. 5.Mezi složené závorky za slovem catch napíšeme instrukci: MessageBox.Schow („Zapsali jste špatný údaj“);
double y = double.Parse(textBox1.Text); Zdrojový text s ošetřením běhové chyby: private void button1_Click(object sender, EventArgs e) try { double y = double.Parse(textBox1.Text); double x = double.Parse(textBox2.Text); double z = Math.Pow(y, x); textBox3.Text = Convert.ToString(z) catch MessageBox.Show("Zadali jste špatný údaj"); }