Ale kritika výjimek mě zajímá. Idris zmínil, že je pak těžší zajistit typovou bezpečnost, ok.
Jestli tě zajímá kritika výjimek, tak bych měl i další drobnost.
Výjimky IMO oddělují tu standardní a nestandardní cestu až moc dokonale. Jeden extrém je manuální ošetřování chyb furt dokola. Druhý extrém ale je, když při čtení kódu netuším, kde to může a nemůže vyletět.
Pokud může házet úplně všechno, pak se dost blbě udržujou invarianty objektů. Daleko lepší je házející kus a pak commit co nic házet nesmí. Při čtení kódu ale jednoduše nepoznám, kde zrovna jsem.
V tomhle se mi hrozně líbila jedna z posledních přednášek Herba Suttera - jen označit řádky (nebo možná celý blok) co můžou házet a bude se to propagovat nahoru. Překladač by pak mohl zkontrolovat že ty neoznačené kusy házet nemůžou. Tohle by mi přišlo jako rozumný kompromis. Propagace by byla automatická, ale při čtení by bylo vidět, odkud to může lítat.