Hlavní navigace

Názor k článku Go: minimalistický a překvapivě výkonný programovací jazyk od JSH - Rozdíl je v tom, jestli o takové situaci...

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

  • 25. 11. 2018 0:32

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

    Rozdíl je v tom, jestli o takové situaci přemýšlejí jako o něčem, co může nastat. Vyhodit výjimku je jedna věc. Druhá věc je napsat veškerý nadřazený kód až po místo chycení tak, že s ní počítá. Dosáhnout aspoň základní "exception safety" (jak se to překládá?) není až taková sranda.
    A vůbec tomu nepomáhá, že v kódu obvykle není poznat odkud to může a nemůže lítat. Výjimky (alespoň v obvyklé podobě) jsou neviditelné při běžném čtení. Musím se podívat na jednotlivé funkce abych věděl, jestli náhodou nehází. Ify jsou sice opruz, ale aspoň je hned vidět, kde to může selhat. A jak o tom při psaní autor uvažoval.
    O výjimkách se říká, že se nedají ignorovat. Není to pravda. Mezi místy odkud vyletí a kde ji někdo chytí je spousta příležitostí pro její ignorování. Nebo spíš pro ignorování možnosti, že výjimečně může něco stát.

    V tomhle se mi moc líbí nový návrh výjimek v C++. Pokud je nechytám, tak každý házející výraz musím označit pomocí "try". I při zběžném čtení bude vidět, že to může vyletět a že se to bude propagovat výš. Už se dá trochu líp přemýšlet o tom, jestli mi náhodou nějaká data nemůžou zůstat v nekonzistentním stavu.