Ti suggerisco di iniziare leggendo il manuale ufficiale:
http://www.php.net/set_error_handler
http://www.php.net/set_exception_handler
http://www.php.net/ob_start
http://www.php.net/ob_clean
Per quanto riguarda il caso specifico, ogni sistema ha al sua gestione degli errori. Alcune operazioni (es. quelle del DB) le puoi ripristinare utilizzando le transazioni, altre creando delle code di lavori da eseguire per effettuare la pulitura.