Výjimky

12. hodina PVA


Matěj Cajthaml — SSPŠ

©

Výjimky

Výjimky

  • způsob práce s mimořádnými situacemi
  • uchovávají informace o zavolání
  • vyvolání výjimky

Zachycení

  • při vyvolání se program zastaví
  • program se snaží najít nejbliží blok catch(...)
  • nenalezne-li ho: program se ukončí a vyhodí chybovou hlášku
  • nalezne-li ho: zkontroluje co se má udělat a popř. pokračuje mimo catch blok nebo hledá další catch

Typy výjimek

  • všechny vyjímky využívají Exception
  • můžeme si definovat vlastní výjimky
  • předpřipravené: DivideByZeroException, IndexOutOfRangeException, ...

Speciální výjimka

Zachycení všech

Výjimka jako objekt

Výjimka jako objekt

  • ze zachycené výjimky
  • např. e.Message
  • později ve školním roce vlastní vyjímky s daty

Zachycení více výjimek

Vyvolání výjimky

Blok finally

  • část kódu, která se volá po zavolání bloku try a catch
  • musí být na konci
  • volá se i když výjimku nepříjmeme a program by se měl ukončit

Co se stane když v bloku catch vyvoláme výjimku?

Nevýhody výjimek

Napadá Vás nějaká?

Rychlost

Častá nepřehlednost

Konverze pomocí TryParse

  • podobná Parse metodě na datových typech
  • nevyvolá výjimku v případě chyby
  • vrací boolean hodnotu
  • přijímá danou textovou hodnotu a referenci na proměnou
  • klíčové slovo out

Shrnutí

Jak zachytíme přesnou výjimku pomocí catch bloku?
Všechny podmínky využívají ___________________. A tedy je přes to můžeme zachytit.
Co se stane když přistoupíme ke špatnému indexu v poli?
Jak zjistíme, jak maximálně velká může být konzole šířkou a výškou?
Jak můžeme kombinovat booleanovy hodnoty? Proč to děláme?

Shrnutí

Lze v C# získat zbytek po dělení nulou?
Co je to složené přiřazení? Jak se zapisuje?
Jaké dva typy vícedimenzionálních polí máme? Jak se liší?
Jaké jsou nevýhody výjimek?

Děkuji za pozornost!

  • matej.cajthaml@ssps.cz
  • https://ssps.cajthaml.eu/