( mrev | 2015. 07. 14., k – 08:23 )

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.

--
ulysses.co.hu

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.