It ensures that the program must recover from any expected or unexpected events without loss of data or functionality. Events could be like shortage of disk space, unexpected loss of communication, or power out conditions.