Handle/render errors or raise exceptions

I think it’s highly personal and situational. My subjective opinion is that if you’re not planning to show the error reason to end-users and if no extra context is required, an atom will suffice. I also don’t like exceptions in general and prefer to deal with error values rather than all this runtime magic. Therefore any expected error is, for me, not exceptional.