What It Really Takes to Handle Exceptional Conditions 
Handling exceptions, errors, and alternative flows are a critical part of defining good use cases and designing good software. Correct handling of esceptional conditions is not only necessary for correct realization of requirements and for system reliability, but is also an important factor in usability. This paper details a systematic approach to the design of exception handling in object-oriented software.
Wirfs-Brock, Rebecca. Constantine and Lockwood (2003). Articles>Usability>Programming