1. A method for enabling a software application to recover from a fault condition, comprising: detecting a fault condition during execution of the software application; restoring execution of the software application to a previous point of execution, the previous point of execution occurring during execution of a first subroutine in the software application; and forcing the first subroutine to forego further execution and return to a caller of the first subroutine.