P6a: Paralelné spracovanie, robustnosť programu a reflexia (pokračovanie) (desktop)
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Prednáška pokračuje témou robustnosti programu a rozoberá prácu s výnimkami v Jave na príklade hry s rytiermi a obrami. Ak používateľ zadá neplatný vstup, napríklad viac rytierov ako je celkový počet bojovníkov, program sa správa nekorektne, preto je vhodné ošetriť takúto situáciu už v modeli, nezávisle od používateľského rozhrania JavaFX. Výnimka je signalizačný mechanizmus, ktorý problém odovzdá nadriadenej metóde, prípadne ho ošetrí sama alebo zvolí iný postup. Vlastnú výnimku vytvorí trieda rozširujúca Exception a vyhodí sa kľúčovým slovom throw. Metóda, ktorá ju vyhadzuje, ju musí v signatúre deklarovať pomocou throws, čo platí aj pre volané metódy a konštruktory, napríklad pri serializácii. Na záver sa spomína reflexia a priestor na otázky.
- - Výnimka je signál o probléme, nie problém sám; propaguje sa k nadriadenej metóde, až kým ju niekto neošetrí.
- - Pri chybnom vstupe program nemusí skončiť, ale má používateľovi signalizovať chybu a umožniť opravu.
- - Vlastná výnimka sa vytvorí rozšírením triedy Exception, aby sa dali rozlíšiť jednotlivé typy chýb.
- - Výnimka sa vyhadzuje kľúčovým slovom throw, čo je akási núdzová cesta zabudovaná v jazyku.
- - Metóda musí vyhadzovanú výnimku deklarovať v signatúre pomocou throws, inak kompilátor hlási chybu.
- - Deklarovať treba aj výnimky volaných metód a konštruktorov, napríklad IOException a ClassNotFoundException pri serializácii.
- - Logiku modelu je dobré ošetriť nezávisle od používateľského rozhrania JavaFX, ktoré vie chybu len sprostredkovať.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky