Oprava 15. části PPA1

This commit is contained in:
Filip Znachor 2022-12-21 17:11:36 +01:00
parent cfe64e91f1
commit 937aca55ba
1 changed files with 4 additions and 3 deletions

View File

@ -48,7 +48,7 @@
- Všechny tyto výjimky jsou odvozeny (přímo nebo přes delší hierarchii) od ```RuntimeException```
- Není nutné se o ně v programu postarat, protože mohou nastat kdekoliv
- Příkladem je přístup do neexistujícího prvku pole (```ArrayIndexOutOfBoundException```), volání metody nad referenční proměnnou, která je ```null``` (```NullPointerException```),dělení nulou (```ArithmeticException```) a mnoho dalších
- Příkladem je přístup do neexistujícího prvku pole (```ArrayIndexOutOfBoundException```), volání metody nad referenční proměnnou, která je ```null``` (```NullPointerException```), dělení nulou (```ArithmeticException```) a mnoho dalších
- Program lze přeložit **překladač nás nenutí, abychom je ošetřili** pomocí speciální části zdrojového kódu
- Považujeme-li to za vhodné, můžeme je ošetřit (stejným způsobem jako kontrolované výjimky)
- Typicky je to v místech, kde je zvýšená pravděpodobnost problému (např. vstupy od uživatele)
@ -99,7 +99,8 @@
- Blok ```finally``` následuje za blokem catch
- Obsahuje část kódu, která se provede vždy ať už k výjimce dojde, nebo ne (i když dojde k jiné výjimce, která není odchycena)
- Nepoužívá se příliš často
- Možné ošetření výjimky pouze vypsání chyby a ukončení programu Primitivní, ale často rozumný způsob
- Možné ošetření výjimky pouze vypsání chyby a ukončení programu
- Primitivní, ale často rozumný způsob
- Hodí se v případech, kdy vznik výjimky znamená, že program dál stejně nemůže smysluplně pokračovat
- Umožní program přeložit (pokud ošetřujeme kontrolovanou výjimku)
- V případě, že je výjimka vyhozena, se o ní z chybového výpisu dozvíme
@ -190,7 +191,7 @@
- Propagování výše se provede v bloku ```catch``` příkazem ```throw```
- Výjimky jsou zachyceny blokem ```catch```, ve kterém se provede ošetření (zde není žádné potřeba) a výjimka se následně předá výše
- Uzavření souboru (pokud je otevřen) se provede v bloku ```finally``` (chceme ho zavřít v každém případě, ať už výjimka vznikla nebo ne)
- Pokud potřebujeme v ošetření výjimky provést pouze uzavření souboru (a ne jinou akci), je možné (a lepší) použít konstrukci ```try```-withrerources
- Pokud potřebujeme v ošetření výjimky provést pouze uzavření souboru (a ne jinou akci), je možné (a lepší) použít konstrukci ```try```-with-resources
- Bloky ```catch``` ani ```finally``` se vůbec neuvedou, ale k uzavření souboru dojde
- Kvůli chybějícímu bloku ```catch``` se výjimka ani nezachytí a není tedy ani nutné znovu ji vyhazovat příkazem ```throw```