( gthomas | 2015. 07. 14., k – 21:25 )

Hát, én programozok Go-ban egy ideje, és nagyon szeretem!

Az, hogy nem kivétel kezelés van, megfordítja a gondolkodást: nem azon kell gondolkodni, hogy "jé, itt dobhat valami kivételt, akkor engedjem tovább, vagy naplózzam és szálljak ki?", hanem rákényszerít arra, hogy MINDEN művelet adhat hibát, amit OTT HELYBEN le kell kezelni valami módon.
De ha pl. ír egy fájlt az ember, akkor egyszerűsíthet, használhat egy "errWriter" típust, ami implementálja az io.Writer interfészt, (tehát mindenütt használható ahol az használható), amiben "megragad" a hiba, és elég a végén ellenőrizni, hogy volt-e.

Amúgy meg pont a Go egyszerűsége és a gofmt (egy, kanonikus formázás) miatt nagyon egyszerű tool-okat írni a nyelvhez: pl. a github.com/kisielk/errcheck program kilistázza, hol nem kezeljük le a visszaadott hibákat.

De tény, hogy a gondolkodás megváltoztatására van szükség: a kezdők kérdéseire 99%-ban jó válasz az, hogy "először is kezelj le minden visszaadott hibát!".

Lehet, hogy nehezebb úgy programozni, hogy minden függvényhívásnál el kell gondolkodni, hogy milyen hibák jöhetnek, és arra milyen választ érdemes adni, de SOKKAL robosztusabb programok születnek!