Exception handling mechanisms provide a structure suitable for implementation of fault tolerance in software systems. It is interesting to use an exception mechanism to integrate forward error recovery mechanisms (exception handlers) with backward recovery (atomic actions) in such a way that makes state restoration easier. This work surveys exception handler mechanisms implemented in different programming languages and presents a taxonomy that allows us evaluate them. Based on this evaluation, we present a model to integrate forward error recovery with backward error recovery, with three components: objects, atomic actions and exceptions. The environment chosen to implement the integration was Arjuna, which provides atomic actions and has C++ as its programming language.