Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Java
Vlastní výjimky
java
28. února 2002, 00.00 | V dnešním dílu o výjimkách v Javě se podívame na vytváření vlastních výjimek, jejich vyvolání a také na to, jak by mohla vypadat reakce na výjimku, ale také jak by v žádném případě vypadat neměla.
Jak jsem slíbil, dnes se povídáme na vytváření vlastní výjímky a následně její vyvolání. Mimo to si ukážeme, jak by mohla vypadat reakce na výjimku. Ale také jak by v žádném případě vypadat neměla.
Vytvoření vlastní výjimkyVlastní výjimka velmi úzce souvisí s psaním vlastních tříd. Vytváříme-li vlastní výjimky téměř vždy se jedná o synchronní výjimky. Tedy takové, které se musí ošetřit. To znamená, že vytvořená výjimka je potomkem Exception.
Vlastní výjimky není složité vytvořit. Přesněji řečeno třídy, která má předky Exception.
|
Je možné rozšířit prázdnou výjimku o nějaký statický text vámi staticky dosazený. Či přijatý text v parametru upravit podle libosti.
Vyvolání výjimkyS vytvořením vlastní nové výjimky bezprostředně souvisí i její vyvolání. Na co by byla výjimka, která nikdy nenastane. Vlastní vyvolání výjimky se provádí příkazem throw s určením výjimky, kterou má vyhodit.
Mohlo by to vypadat následovně:
|
Takovým to způsobem ji vyvoláme sami. Ale často (např. v bloku catch) jsme obdrželi již vzniklou výjimku pod námi definovaným názvem a není nutné ji vytvářet znovu. Proto spíše uvidíme:
|
Na závěr se pojďme podívat na to, jak by se opravdu nemělo reagovat na výjimku. A naopak, jak by se mohlo.
Nejhorší reakce na výjimkuJak jsem zde již určitě naznačil. Nejhorší reakcí na výjimku je nulová reakce tzn. kompiler mě donutí napsat kód pro ošetření výjimky (try catch), ale už mě nemůže donutit, abych to toho catch něco napsat. Takto napsaný program se pak chová následným způsobem. Zpracovává kód, vyskytne se výjimka, žádná reakce, program pokračuje dál jako by se nechumelilo. U takových to programů se pak nestačíte divit co dělají.
Na papíře takové ošetření vypadá asi takto:
|
Předešlý způsob používá až mnoho programátorů. Přiznám se i já, ale jen občas!
Přijatelná reakce na výjimkuMluvili-li jsme předtím o tom nejhorším způsobu, jak reagovat resp. nereagovat na výjimku, tak jsem asi zapomněl říci, proč se tento způsob používá. Často to je místo, kde si programátor je jistý , že zde výjimka nenastane. Zatímco kompiler trvá na jejím ošetření.
Nulové ošetření výjimky lze jediným řádkem změnit v celku dobré. Ve smyslu, že alespoň víme, že nějaká nastala a navíc kde a jaká.
|
U zachycené výjimky je také možné získat její text, a pokud se vám nelíbí, tak ho změnit.
|
To je pro dnešek vše. Výjimky jsme dokončili, proto se příště podíváme na novinku v Javě 2 verze 1.4 v podobně Assertion Facility, které bezprostředně souvisí s výjimkami jako takovými.
Obsah seriálu (více o seriálu):
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007