Los errores solo se deberían suscitar en entornos de desarrollo, cuando finalmente pasas a producción dichos errores no deben ser mostrados.
De ahí que se recomienda tener una vista personalizada como mencionas, pero solo en entornos de producción, imagina esto:
Código PHP:
mysql_query($sql) or mi_error($sql);
Dicha función debe reaccionar como te menciono, solo es cuestión de ingeniarla.