Building Resiliency

Don't wait until you're writing code to consider exception handlers.  Exceptions should be identified in the requirements, then handlers should be defined during analysis.  Avoid burying these details in the code to promote agility, reuse, and risk management.  A resilient solution is designed and built around the expectation of failure.

Exceptions identify events that initiate alternate paths.
Exception handlers resolve the conditions which led to those events.