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

Excepciones dentro de excepciones

Estas en el tema de Excepciones dentro de excepciones en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas, Les explico a ver si pudieran echarme una mano con un problema que tengo. (No se si debiera haberlo posteado quizas en el subforo ...
  #1 (permalink)  
Antiguo 15/03/2010, 11:45
 
Fecha de Ingreso: agosto-2009
Mensajes: 15
Antigüedad: 14 años, 8 meses
Puntos: 0
Excepciones dentro de excepciones

Buenas,
Les explico a ver si pudieran echarme una mano con un problema que tengo. (No se si debiera haberlo posteado quizas en el subforo de objetos)

He creado una serie de excepciones las cuales todas ellas heredan de otra llamada LoggedException. El constructor de dicha clase es algo tal que así:

Código php:
Ver original
  1. function __construct($message = null, $code = 0, Exception $previous = null) {
  2. try {
  3. $log = LogFile::abrirLog();
  4. $log->log(__CLASS__ .' ('.$code.'): '.$message, LOG_ALERT);
  5. }
  6. catch (Exception $excepcion) {
  7. throw $excepcion;
  8. }
  9. parent::__construct($message, $code, $previous);
  10. }

Como ven en el constructor intento registrar la excepción en un archivo de texto usando una clase propia llamada LogFile(usa un patron singleton). La cuestión es que dicha clase también puede generar excepciones (las excepciones que lanza esta clase es del tipo Exception, no hereda de LoggedException ya que me crearia un bucle infinito).

Tal y como está ahora, tengo la posibilidad de que se me genere una excepción dentro del constructor de otra excepción lo cual no parece muy sano. Ademas no tengo muy claro en ultima instacia cuales de las dos excepciones seria atrapada por un try/catch del programa principal.

Basicamente lo que quiero es que si en el programa se produce un error registrarloy mostrarlo por pantalla. En el caso de que se produzca un error durante el registro, mostrar ambos errores por pantalla (el original y el del registro). ¿Alguna idea?

Cualquier ayuda seria muy de agradecer.
  #2 (permalink)  
Antiguo 15/03/2010, 12:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP a PHP orientado a objetos

Etiquetas: excepciones
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 03:11.