1. A method for enabling a software application to recover from a fault condition, comprising: replacing one or more instructions in the software application with one or more emulated instructions, wherein the one or more emulated instructions comprise instructions for detecting a fault condition; detecting the 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.