C# - Exceptions (výjimky)

Slides:



Advertisements
Podobné prezentace
Vytvoření dokumentu bylo financováno ze zdrojů Evropského sociálního fondu a státního rozpočtu ČR. Název projektu: Výuka programování na střední škole.
Advertisements

Funkce Připomeňme si program pro výpočet faktoriálu:
Práce se soubory. Ukládání dat Textové soubory s jednoduchou strukturou (např..txt a.csv) textové soubory s vnitřní hierarchií (např..xml) Soubory binárního.
Počítače a programování 1. Obsah přednášky Výjimky - základní typy výjimek Způsoby zpracování výjimek.
C# pro začátečníky Mgr. Jaromír Osčádal
J a v a Začínáme programovat Lucie Žoltá metody, objekty, konstruktor.
J a v a Začínáme programovat Lucie Žoltá. Odkazy - oficiální stránky (překladače, help, metody, vývojové prostředí NetBeans,...)
C# - struktury, výčtové typy, pole
C# - datové typy Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
C# - Registry Windows Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
C# - znakové typy a řetězce
Tabulky v MS Excel Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T. G. Masaryka, Kostelec nad Orlicí.
C# - číselné datové typy
C# - Databáze úvod, ADO.NET
Ing. Josef Veselý Označení šablony a vzdělávací sady viz.rozpis.
C# - pointery Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Objektové programování
Ing. Josef Veselý Označení šablony a vzdělávací sady viz.rozpis.
C# - funkce a procedury Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Jedenácté cvičení Vlákna. Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading -
Seminář C cvičení Obsluha výjimek Ing. Jan Mikulka.
C# - OOP (object oriented programming)
C# - Grafika Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
08/04/20151 Delegáty (1) Delegát (delegate) je datový typ, který definuje signaturu metody Delegáty bývají rovněž označovány jako typo- vě bezpečné ukazatele.
PRÁCE S VLÁKNY A APLIKAČNÍ DOMÉNY V.NET FRAMEWORK APLIKACÍCH Architektura technologie.NET Jan Martinovič, FEI - Katedra Informatiky.
C# - Úvod Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
C# - prvky UI – vlastnosti a události Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
C# - I/O, streamy, práce se soubory
Čísla Desetinná čísla. čísla desetinná se v PC ukládají jiným způsobem než čísla celá – výpočty s nimi provádí dvě odlišné části procesoru při výpočtech.
C# - Testování a ladění aplikací Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
KIV/PPA1 cvičení 10 Cvičící: Pavel Bžoch. Osnova cvičení Výjimky a práce s nimi Nácvik na online test.
C# - Menus, ToolBars and Dialogs Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
C# - předávání parametrů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
IB111 Programování a algoritmizace
ZADÁNÍ Sestavte program, který vypočítá obvod a obsah čtverce o straně a. Zajistěte, aby výpočet byl realizován pouze v případě, kdy strana a bude mít.
ADO.NET – Transakce Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Dědičnost - inheritance dědičnost je jednou z forem znovupoužitelnosti dědičnost je jednou z forem znovupoužitelnosti B A Třída A je předkem třídy B Třída.
C# - Generic Collections Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
VISUAL BASIC PRALG. 19. Chyby a ladění programu Kompilační chyby - chybná syntaxe, neexistující objekt, chybný parametr,... Run-time chyby - dochází k.
ADO.NET – Objekt DataSet (offline scenář) Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Šesté cvičení Výjimky Balíky.
Netrvaloppa21 Vytvořte třídu Student pro reprezentaci struktury student na ZČU. Atributy třídy budou fakulta a osobniCislo. Název třídy: Student proměnné.
POSLOUPNOST úkol 1_41. ZADÁNÍ Sestavte program, který doplní tabulku nepřímé úměrnosti pro hodnoty proměnné x = 1, …, n. Nepřímá úměrnost je zadána uživatelem.
C# - konverze datových typů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
ADO.NET – object Connection Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
C – jak na procedury Mgr. Lenka Švancarová. C – procedury #include int main() { printf("Ahoj\n"); return(0); } #include void pozdrav(void) { printf("Ahoj\n");
16/04/20151 Výjimky a zpracování chyb (1) Výjimky (exceptions) dovolují tvorbu progra- mů, které mohou reagovat na různé chybové stavy vzniklé v jeho průběhu.
Microsoft SQL server Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
PŘÍKAZ while úkol 1_42.
C – procedury Mgr. Lenka Švancarová.
ÚPLNÁ PODMÍNKA V JAVĚ úkol 1_29.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA:
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
Výukový materiál zpracován v rámci projektu
Metody s proměnným počtem parametrů
C# konzole – Podíl dvou čísel, podmínka IF
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
ZAL – 3. cvičení 2016.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Typový příklad 3 – zadání 1
Výukový materiál zpracován v rámci projektu
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
Práce s procesy Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Autor:
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
Transkript prezentace:

C# - Exceptions (výjimky) Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí

Co jsou výjimky ? V průběhu programu může dojít k situacím, které by mohli skončit chybou, zhroucením aplikace, systému Např.: nepovolené operace s různými datovými typy, chybné připojení k databázi, …. V případě že provádíme nějakou „rizikovou“ operaci je nutné ošetřit všechny situace, ke kterým její provedení může vést Jedním ze silných nástrojů je právě ošetřování výjimek Pokud operace neproběhne korektně, je vyvolána výjimka, se kterou můžeme následně pracovat a ošetřit program tak, aby na tuto situaci reagoval adekvátním zbůsobem V jazyce C# se pro ošetření rizikových částí programu používá konstrukce pomocí dvou klíčových slov try - catch Na rozdíl od způsobu zjišťování chyb pomocí návratových hodnot funkcí je možné pomocí výjimek zjišťovat a ošetřovat chyby v místě jejich vzniku Výjimka je objekt na hromadě, který nese informace o nastalé chybě, tento objekt je potomkem třídy System.Exception

Try - použití private void button1_Click(object sender, EventArgs e) { //definuji číslo typu double double myDblNumber; //označím sekci, která je riziková – převod string a číslo //sekce try pouze označuje chráněný blok, kde zkoušíme volat //metody try { myDblNumber = double.Parse(textBox1.Text); textBox2.Text = (MyDblNumber * 2).ToString(); }

Výjimky - exceptions K výjimce dojde automaticky při chybě v námi označeném bloku, nebo můžeme v případě potřeby výjimku generovat Př. (Generování výjimky):  public static float Vydel(int a,int b)  {   if (b == 0)    //vyhození výjimky    throw new DivideByZeroException();    return a / b;  } Kde DivideByZeroException je výjimka, která je vytvořena a vyhozena v případě, že jmenovatel je 0 Odpovědnost za zpracování této výjimky pak řeší objekt, který tuto metodu volá

Odchytávání výjimek (Exceptions handling) Pomocí klíčového slova catch U každého handleru je uveden typ výjimky pro kterou je daný handler určen Př. (navazující na už definovanou funkci): public static void MetodaVolajiciVydel() {  try  {   float lVysledek = Vydel(4,0);   //následující řádek se při vyvolaní výjimky v metodě Vydel neprovedou   Console.WriteLine("Vysledek deleni: " + lVysledek);  } //sekce pro odchytnutí výjimky pro dělení nulou  catch(DivideByZeroException ex)  {   Console.WriteLine("Pri deleni doslo k deleni nulou! " + ex);  } }

V kódu může být samozřejmě několik sekcí catch pro odchytnutí jednotlivých výjimek Pokud v kódu uvedeme sekci : catch(System.Exception ex) označíme tak blok pro odchytnutí všech výjimek Po vyhození výjimky v sekci try dojde ke konci provádění kódu a program pokračuje ošetřením výjimky Někdy může být užitečné napsat kus kódu, který proběhne nezávisle na tom zda v sekci „try“ došlo k chybě nebo ne (zpravidla jde o ukončení nějaké činnosti korektní cestou, např. skončení DB spojení,…) tato sekce je uvozena klíčovým slovem finally

Více o výjimkách Každá výjimka „probublává“ v hierarchii metod, které se navzájem volají až do místa, kdy není zachycena. Pokud k zachycení nedojde, je zachycena běhovým prostředím a uživateli je tímto běhovým prostředím zobrazeno okno oznamující vzniklou chybu. Pro každého programátora je ošetření programu proti chybou důležitou a nedělitelnou součástí tvorby SW a výjimky jsou silným nástrojem k této činnosti Tvorba vlastních výjimek Využití vlastnosti .Message – třídy System.Exception (vypíše informace o chybě) Využití vlastnosti .StackTrace – třídy System.Exception (užitečná vlastnost při ladění a trasování původce chyby)

.Message static void Main(string[] args)  {   try   {    DeleniNulou.Vydel(5,0);   }   catch (DivideByZeroException ex)   {    //vypsání vlastnosti Message nastalé výjimky    Console.WriteLine(ex.Message);   }   Console.ReadLine();  }

Úkoly Vytvořte jednoduchou aplikaci, která bude dělit dvě čísla zadaná uživatelem. Pomocí výjimek ošetřete program na různé druhy možných chyb při běhu programu a vypište odpovídající chybové zprávy. Dělení nulou, přetečení rozsahu činitelů, špatný datový typ.

Seriály o programování v jazyce C# : www.živě.cz www.java2s.com Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Použité materiály: Kniha: Programujeme profesionálně, nakladatelství WROX, autor: Jay Glynn,… www.wikipedia.com Seriály o programování v jazyce C# : www.živě.cz www.java2s.com www.functionx.com www.csharp-station.com www.msdn.com www.bytes.com www.c-sharpcorner.com