Best Patterns and Practices for Error Handling?

Not an immediate solution, but I suggest you review:

The discussion in this ticket

and this PR