Error handling system
Throw in Library layer and Catch in Application layer
Minimize cases where exceptions are simply returned to improve debugging
- Criteria for distinguishing between expected and unexpected errors
- Tools for error monitoring
- Mechanisms to prevent error propagation
Choose approaches that are intuitive and reusable in the given context, rather than focusing on declarative vs imperative