Nekem igazából nincs semmi bajom az exception-nal, mert azt mutatja, hogy itt bizony hiba LEHET és a fejlesztőt RÁKÉNYSZERITI, hogy csináljon valamit
a hibával. Ha lehetőséget biztosítunk a fejlesztőnek arra, hogy ne is foglalkozzon a hibával, akkor a fejlesztő jó eséllyel figyelmen kívül fogja hagyni.
Példa:
f, err := os.Open("filename.ext")
if err != nil {
log.Fatal(err)
}
Az első, amit kapásból ki fog a legtöbb fejlesztő hagyni, az az if err != nil... ráadásul nincs annál rondább, amikor egy kódrész tele van ilyen vizsgálatokkal.
Szerintem sokkal szebb, ha a hibajelzést blokkonként egy helyen tudom kezelni (pseudokód)
try{
f := os.Open("")
f.read()
f.write()
...
} catch (Exception e){
handleError(e);
}
Aztán.
http://blog.philipphauer.de/checked-exceptions-are-evil/
Ebben a cikkben az exception körüli problémákra azért jól rámutat a szerző, azonban nem vagyok meggyőződve arról, hogy a burkoló exception-nak Runtime
exception-nak kellene lennie. Szerintem ugyanúgy checked exception-nak kell lennie, beburkolva a belső exception-öket.