Nemám v zásadě nic proti výjimkám, ale návratová hodnota je vždycky značka ideál. Zvláště v typovaných jazycích.
Jak bys tedy vyřešil návratovou hodnotu funkce, která má vracet třeba string, ale uvnitř selže? Prosím jinak než v Golang, jehož řešení znám.
Asi se budu opakovat: Já bych v prvé řadě nevytvářel umělá omezení.
Zrovna případ Golang je super v tom, jak v jazyce kde "zapoměli" vynutit povinnost odebrat hodnotu, vyřešit návrat chyby.
V Javě jsou zvykem výjimky, dělal bych to tedy výjimkami. Ne proto, že by to byla nějaká zvláštní výhra, ale protože je to tam zvykem.
C++ nedělám, to je hnusnej jazyk.
Rust to řeší jako Golang, nebo případně monádama.
Lua to řeší jako Golang, ale výjimky to taky umí.
etc.
Je možno si všimnout, že mnoho, zvláště staticky typovaných jazyků, používají návratovou hodnotu. Mnoho dalších jazyků používá výjimky. Šermovat tu s CleanCode a brát výjimky jako písmo svaté je poněkud... nezkušené.