1. A method for self healing of software comprising: monitoring errors, events, and exceptions occurring in program layers of the software; analyzing the monitored errors, events, and exceptions; and performing corrective actions to fix the analyzed errors, events, and exceptions.