Integrating support for undo with exception handling

One of the important tasks of exception handling is to restore program state and invariants. Studies suggest that this is often done incorrectly. We introduce a new language construct that integrates automated memory recovery with exception handling. When an exception occurs, memory can be automatically restored to its previous state. We also provide a mechanism for applications to extend the automatic recovery mechanism with callbacks for restoring the state of external resources. We describe a logging-based implementation and evaluate its effect on performance. The implementation imposes no overhead on parts of the code that do not make use of this feature.

tr-2004-140.pdf
PDF file
tr-2004-140.ps
PostScript file

Details

TypeTechReport
NumberMSR-TR-2004-140
Pages13
InstitutionMicrosoft Research
> Publications > Integrating support for undo with exception handling