El manejo de errores con excepciones no es tan difícil, incluso puedes crear tu propio administrador como explican en el manual:
http://php.net/manual/es/function.se...on-handler.php
Ya teniendo tu función personalizada, en caso de algún error lanzas una excepción:
Código PHP:
Ver originaltry {
// Aquí intentas realizar una consulta SQL
} catch(Exception $e) {
// Si solo deseas mostrar el mensaje del error:
echo $e->getMessage();
// Si tienes tu propia función para manejo de errores:
paginaError($e->getMessage());
// Si tienes tu propia función para manejo de excepciones:
throw new Exception($e->getMessage());
}
Seguramente con esto verás mensajes como los que mencionas acerca de llaves duplicadas o violación de FK; aparte, evitarás anteponer la @ a funciones que pueden generar error, además de obtener un mensaje explícito del error.