Error Handling in C++: Why You Should Use Eithers, Not Exceptions or Error-Codes
hackernoon.com
hackernoon.com
Some of the points that stood out to me, in opposition of the article's "this way is better":
* Exceptions are usually free if not thrown... If they are thrown... You're in an error path. You don't usually care about speed.
There's a long list of problems here [1].