Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema raro: Excepcion no-capturada

Estas en el tema de Problema raro: Excepcion no-capturada en el foro de PHP en Foros del Web. Colegas: Me esta pasando algo "raro" porque tengo dentro una clase algo no mucho mas complicado que esto... y la excepcion jamas es capturada, termina ...
  #1 (permalink)  
Antiguo 09/07/2013, 19:58
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Problema raro: Excepcion no-capturada

Colegas:

Me esta pasando algo "raro" porque tengo dentro una clase algo no mucho mas complicado que esto... y la excepcion jamas es capturada, termina arrojando "Fatal error" ... por que puede pasar ?

Código PHP:
   <?php
    
try 
        {
            throw new 
Exception ("Algo anda mal"); 
            
        }catch (
Exception $e){
            echo 
'Error capturado: '$e->getMessage(), "\n"
        }

    echo 
"// La vida sigue..";

Gracias desde ya

Código PHP:
Ver original
  1. public function consistencyCheck($strict_error=false){
  2.  
  3.         $intersec = array_intersect($this->_must_contain,$this->_must_not_contain);          
  4.  
  5.         try
  6.         {
  7.  
  8.         if (!empty($intersec))
  9.             throw new \Exception ("Los tags que no deben estar, no pueden ser los mismos que deben estar (contradiccion)");
  10.             ///return false;
  11.  
  12.        
  13.         if (!empty($this->_can_contain))
  14.         {
  15.             // el universo de lo posible de ser mayor del obligado
  16.             if (count($this->_must_contain) > count ($this->_can_contain))
  17.                 throw new \Exception ("El universo de lo posible de ser mayor del obligado");  
  18.                 //return false;
  19.         }  
  20.          
  21.         // todo elemento en MUST debe estar en CAN
  22.         foreach ($this->_must_contain as $must){
  23.             #$must_name = $must->getElementName();
  24.                    
  25.             $found = false;
  26.             foreach ($this->_can_contain as $can){
  27.                 if ($can->compareTo($must)>=0) // >= ó ==
  28.                     $found = true;            
  29.             }  
  30.             if (!$found)
  31.                 throw new \Exception ("Todo elemento en MUST debe estar en CAN");
  32.                 //return false;
  33.         }
  34.          
  35.        
  36.        
  37.         if (!empty($this->_secuence))
  38.         {      
  39.             // tags que DEBEN obligadamente estar
  40.             foreach ($this->_must_contain as $tag){
  41.            
  42.                 if (!$this->find($tag))
  43.                     throw new \Exception ("Hay tags que DEBEN obligadamente estar");
  44.                     //return false;  
  45.  
  46.                 $this->rewind();
  47.             }
  48.        
  49.  
  50.             // tags que obligadamente *no* DEBEN estar        
  51.             foreach ($this->_must_not_contain as $tag){
  52.            
  53.                 if ($this->find($tag))
  54.                     throw new \Exception ("Hay tags que obligadamente *no* DEBEN estar");
  55.                     //return false;  
  56.  
  57.                 $this->rewind();
  58.             }
  59.         }else
  60.             return null;
  61.  
  62.         // por que no la captura ?
  63.         }catch (Exception $e){
  64.             echo 'Error de chequeo: ', $e->getMessage(), "\n";
  65.             return false;
  66.         }
  67.  
  68.         return true;
  69.     }
__________________
Salu2!
  #2 (permalink)  
Antiguo 09/07/2013, 20:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problema raro: Excepcion no-capturada

Si estas usando namespaces y estas lanzando \Exception, tienes que capturarla igual con \Exception, si no hace default al namespace actual.

Saludos.
  #3 (permalink)  
Antiguo 09/07/2013, 20:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema raro: Excepcion no-capturada

Un error fatal para nada es una excepción, no hay forma de capturarla.

Como no podemos hacer testing sobre tu código completo, y me imagino que tu tampoco lo estarás haciendo, ¿que podría ser?

En el mejor de los casos, los errores fatales no deberían ocurrir no más por que sí.

Y si tampoco nos compartes el mensaje completo del error, ¿pues a qué estamos jugando?

PDTA: Te ubico de antaño y no quiero ni imaginar que otra vez tengamos que pasar por lo mismo.

Cita:
Iniciado por GatorV Ver Mensaje
Si estas usando namespaces y estas lanzando \Exception, tienes que capturarla igual con \Exception, si no hace default al namespace actual.

Saludos.
+1
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 09/07/2013, 20:08
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Problema raro: Excepcion no-capturada

Cita:
Iniciado por GatorV Ver Mensaje
Si estas usando namespaces y estas lanzando \Exception, tienes que capturarla igual con \Exception, si no hace default al namespace actual.

Saludos.
No entendi ni 'J' la ultima parte de tu explicacion, pero te hice caso, el catch (\Exception $e) y ahora si la capturó, muchas gracias!

Cita:
Iniciado por pateketrueke Ver Mensaje
Un error fatal para nada es una excepción, no hay forma de capturarla.

.....

PDTA: Te ubico de antaño y no quiero ni imaginar que otra vez tengamos que pasar por lo mismo.

No entendi la ultima parte... creo quieres sancionarme por algo que ni se que es ? preguntar ?

El problema se resolvio como indico @GatorV ... y meti mano al php.ini y todos los errores son un "cartelon" ... cuando no la capturo el error aparece de nuevo y dice "Fatal error" aunque es un error que yo lanzo como Excepcion
__________________
Salu2!

Última edición por Italico76; 09/07/2013 a las 20:19
  #5 (permalink)  
Antiguo 09/07/2013, 20:57
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Problema raro: Excepcion no-capturada

Te explico un poco mas ampliado lo que dijo GatorV
\Exception
hace referencia a la clase global Exception, al estar usando un namespace simplemente sino le colocas el \ piensa que dentro de tu namespace tienes una clase llamada Exception es decir
TuNamespace\Exception

que estoy casi seguro que no la tienes.

Saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Etiquetas: excepcion, raro
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 13:40.