Effective Exception

Občas je možné slyšet, že kontrolované výjímky v Javě (checked exceptions) jsou experiment, který se nepovedl. Bruce Eckel je ve svém článku (Does Java need Checked Exceptions?) odsuzuje a říká, že by Java byla lepší bez nich.

Autor říká, že kontrolované vyjímky obvykle nedokážeme ošetřit namístě a proto je pošleme „výš“ – buď je zabalíme do jiné (obecnější) vyjímky nebo naší metodu označíme, že vyvolává tuto vyjímku (to ovšem znamená porušení abstrakce – proč by volající měl vědět něco o tom, že čtu ze souboru nebo z databáze?).

Důkazem tvrzení, že s kontrolovanými vyjímkami není něco v pořádku, je i změna HibernateException z kontrolované na nekontrolovanou (mezi verzemi hibernate 2.x a 3.x).

Článek
Effective exception
ovšem říká, že kontrolované vyjímky nejsou tak úplně špatné. Jen jsou špatně použité v základních Java API.

Myslím, že autor v tomto článku to vystihl správně. Doporučuji k přečtení. Toto je také důvod, proč se kontrolované vyjímky nejeví jako problém už u malých ukázkových programů – prostě u nich chápeme jinak chybu programu (contingency) a selhání systému (fault), než u velkých projektů.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *