Summary
Consciously specify, and conscientiously apply, what so many projects leave to ad-hoc (mis)judgment: Develop a practical, consistent, and rational error handling policy early in design, and then stick to it. Ensure that it includes:
- Identification:
What conditions are errors. - Severity:
How important or urgent each error is. - Detection:
Which code is responsible for detecting the error. - Propagation:
What mechanisms are used to report and propagate error notifications in each module. - Handling:
What code is responsible for doing something about the error. - Reporting:
How the error will be logged or users notified.
Change error handling mechanisms only on module boundaries.