Exception handling is a structuring technique that facilitates system desig
n by encapsulating the process of error recovery. Traditional methods deal
with exceptions at tate design and implementation phases, thus losing the c
ontext of error detection and recovery, and the correlation between excepti
ons and their handlers. The proposed approach emphasises the separation of
the treatment of requirements-related, design-related, and implementation-r
elated exceptions during the software lifecycle by specifying the exception
s and their handlers in the context where faults are identified. The descri
ption of exceptional behaviour is supported by a co-operative object-orient
ed approach that allows the representation of collaborative behaviour betwe
en objects at different phases of the software development. The feasibility
of the approach is demonstrated in terms of a benchmark case study.