Oprava 15. části PPA1
This commit is contained in:
parent
cfe64e91f1
commit
937aca55ba
|
@ -48,7 +48,7 @@
|
||||||
|
|
||||||
- Všechny tyto výjimky jsou odvozeny (přímo nebo přes delší hierarchii) od ```RuntimeException```
|
- 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
|
- 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
|
- 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)
|
- 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)
|
- 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
|
- 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)
|
- 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
|
- 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
|
- 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)
|
- 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
|
- 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```
|
- 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
|
- 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)
|
- 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
|
- 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```
|
- Kvůli chybějícímu bloku ```catch``` se výjimka ani nezachytí a není tedy ani nutné znovu ji vyhazovat příkazem ```throw```
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue