Bueno al final he encontrado la solución. Implementando un patrón dictionary y un locator para gestionar los mensajes en fin algo más que se aprende.
 
Respecto a J.Serna 
Código:
 No llevo mucho con las excepciones pero creo que de esta manera te podria funcionar.
Si no me equivoco la excepcion se lanza en el bloque try y en el bloque catch se trata y se hace lo que se necesite con ella.
  El problema no era que no funcionara el try/catch que no siempre funciona así hay veces que directamente puedes utilizar el 
 Código PHP:
    throw new Exception 
    
  sino según la excepción como traducir los mensajes dependiendo el idioma del cliente y del administrador. El sistema era el siguiente al mostrar el error al cliente este se procesaba y se mostraba en una página web que mostraba el mensaje en questión según el idioma del cliente almacenado en una sesión pero a la vez el error quedaba registrado en la base de datos con el idioma del administrador. Pero como ya he dicho está superado.