Szerintem semmire sem kell rákényszeríteni a programozót. A tankönyvek sajnos tele vannak a hibakezelés káros példáival. Tranzakciószintű hibakezelésre van szükség, miközben a részletekben előforduló kivételeket lokálisan nem szabad buzerálni.
Pszeudokód:
try{
tranzakcio()
//a tranzakciobol sokfele kivetel johet
//pl. hianyzik valamilyen torzsadat
//nincs fedezet az atutalasra
//konkurens tranzakciok utkoznek, stb.
//amikkel azonban lokalisan nem foglalkozunk
commit
}
catch{
abort
//jelentes a hibarol:
//hiba leirasa
//callstack printelese
//stack valtozok printelese
//stb.
}
A kivételkezelés értelme (éppen arra van kitalálva, azért hasznos), hogy a hibát ne kelljen a hiba előfordulásának a helyén kezelni. Ha a hibát a hiba helyén akarjuk kezelni, akkor elég a return értékeket nézni. Tehát hangsúlyozottan lehetőséget kell adni a fejlesztőnek, hogy ne foglalkozzon a hibával.
Kiegészítés. Persze, foglalkozni kell a hibákkal a hiba helyén is: ott kell kivételt dobni. A kivétel elkapása másodlagos. Vagyis a kivételek dobálásában kell szorgalmasnak lenni, nem pedig az elkapásukban. Ez az, ami nem szokott kiderülni pl. a Jáva tankönyvekből.