Bueno, a partir de php 5 tenes excepciones en php (
http://ar2.php.net/manual/es/language.exceptions.php).
Ahora, contar con php5 es complicado (a nivel host/cliente). Yo lo que suelo usar es, al inicio del file:
Código PHP:
set_error_handler("error_handler");
error_reporting(E_ALL);
Y la funcion error_handler que es llamada por set_error_handler la
contras en google.
Con esta función capturas el evento, lo mandas a una pagina con un error amigable para el usuario, y te mandas el error por email. Creo que no hay mejor manera de trackear un sistema mediano/grande en cuanto a errores (sacando a errores lógicos o de servidor).
Es un buen tema, nadie controla los errores? Pregunto para conocer otras maneras...