This paper focuses upon the requirement to save and restore application sta
te as part of the execution of error recovery mechanisms. Using the object-
oriented features of the revised Ada language, we present a portable implem
entation of a state recovery mechanism that is fully independent of applica
tion types. Results of the implementation of this mechanism are used to hig
hlight both the strengths and weaknesses of some of the object-oriented fea
tures of Ada 95, particularly user-defined assignment, in the light of our
equivalent implementation in C++. We then show a reusable recovery block im
plementation to illustrate the use of the recovery mechanism.