Hlavní navigace

Názor k článku Go: minimalistický a překvapivě výkonný programovací jazyk od JSH - Ten úklid se musí dělat nejen po chycení...

Článek je starý, nové názory již nelze přidávat.

  • 25. 11. 2018 12:54

    JSH (neregistrovaný) ---.cust.nbox.cz

    Ten úklid se musí dělat nejen po chycení výjimky. Ten úklid musí proběhnout po celé trase, kudy ta výjimka letí. Něco může uklidit garbage collector, ale třeba mutexy neodemkne. Nabízí se otázka, jestli i ten úklid může házet a co v takovém případě udělat. Tady se vedou vášnivé diskuze a shoda moc nepanuje.

    A o co mi šlo je, že pokud může výjimka vyletět odkudkoliv, tak se to může stát zrovna ve chvíli, kdy nejsou splněné nějaké invarianty. Pokud se chci z chyby nějak zotavit, tak musím při chycení vědět, v jakém stavu se může objekt, odkud to vyletělo, nacházet. A pro to už je potřeba nějaký commit nebo rollback, který házet nemůže. Bez toho se nemůžu přesunout mezi validními stavy, ale můžu zůstat v nějakém polorozbořeném stavu, který ani nemusí jít korektně uklidit.

    Minimálně nějaký swap/přiřazení a destrukce musí jít provést bez házení, jinak se nedá spolehnout ani na ten úklid.