Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Control de excepciones

Estas en el tema de Control de excepciones en el foro de Frameworks y PHP orientado a objetos en Foros del Web. A ver si alguien me puede ayudar con este dilema. Hace poco que empece a migrar un CMS hecho en php4 OO a php5. Básicamente ...
  #1 (permalink)  
Antiguo 15/01/2006, 06:31
 
Fecha de Ingreso: septiembre-2005
Mensajes: 142
Antigüedad: 18 años, 7 meses
Puntos: 3
Control de excepciones

A ver si alguien me puede ayudar con este dilema. Hace poco que empece a migrar un CMS hecho en php4 OO a php5. Básicamente para obtener mayor transparencia en la gestión de XML. El problema viene cuando tengo que gestionar las exceptiones en multilenguage¿? Alguien sabe como se redireccionan los mensajes???
És decir si tengo algo como:
Código PHP:
    public function LoadLanguage(){

        
$path Config::getPath(LANGUAGE) . ".xml";
        try {
            
$xmlConf simplexml_load_file($path);
            
//procesar información...
        
}catch (Exception $e){
            throw new 
IOException("El fichero no existe o no tienes permisos de escritura",$e->getCode());
        }

    } 
Como puedo gestionar los mensajes de las excepciones a varios idiomas? es decir que me traduzca el mensaje
Código:
El fichero no existe o no tienes permisos de escritura
Alguna idea??

Última edición por Casuis; 15/01/2006 a las 08:36
  #2 (permalink)  
Antiguo 23/01/2006, 03:29
 
Fecha de Ingreso: enero-2006
Mensajes: 1
Antigüedad: 18 años, 3 meses
Puntos: 0
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.

Código PHP:
//Prueba de esta manera
public function LoadLanguage(){

        
$path Config::getPath(LANGUAGE) . ".xml";
        try {
            
$xmlConf simplexml_load_file($path);
            if (!
$xmlConf){
                 throw new 
IOException("El fichero no existe o no tienes permisos de escritura",$e->getCode());
            }

            
//procesar información...
        
}catch (Exception $e){
           
//funcion o clase que trate el error
           
errorMessage($e);
        }

    } 
Saludos.
  #3 (permalink)  
Antiguo 23/01/2006, 09:28
 
Fecha de Ingreso: septiembre-2005
Mensajes: 142
Antigüedad: 18 años, 7 meses
Puntos: 3
Re: Control de Excepciones

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.

Última edición por Casuis; 23/01/2006 a las 09:34
  #4 (permalink)  
Antiguo 24/01/2006, 06:24
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Sería buenísimo que compartas la solución con los que sabemos menos de PHPOO...

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:17.