A system and method for protecting software components of a software
system can be used to guard against faults which might occur during the
execution of a software component. A software component which is
particularly prone to faults may be designated for protection. Faults
occurring during execution of these protected software components can be
detected, execution of the protected software component can be halted,
and the software system may be restored to the state it held before
execution of the protected software component commenced. The software
system can then resume executing in a normal manner. Furthermore, a
default value for the protected software component may be assigned in the
event that a fault is detected during execution of the protected software
component.