Comunidad de diseño web y desarrollo en internet online

problemas con try Catch

Citar            
MensajeEscrito el 26 Dic 2010 07:46 pm
Hola a todos, les dejo el código

Código PHP :

function validarArreglo($dato)
{   
   $validador=true;   
   try 
   {
      foreach($dato as $valor)                
         break;      
   }
   catch(Exception $e)
   {
      $validador=false;
   }
   
   return $validador;
}

$validado=validarArreglo("cadena");
echo $validado;


La idea es que al mandarle a la funcion una cadena como parametro se produzca un error y que la variable $validador sea "false". Pero como se darán cuenta no funciona.

He leido en internet que hay que atrapar la excepcion y he visto ejemplos que tienen que ver con la división por cero. Pero he notado que en estos ejemplos el mismo programador controla que no se produzca el error por medio de un if
algo asi

Código PHP :

if ($divisor==0) echo "division por cero"  


Entonces no he podido apreciar bien la utilidad del try, creo que al usar el if el try está demás.

Espero que me puedan ayudar, gracias.

Por diego1311

61 de clabLevel



 

Lima - Perú

msie8
Citar            
MensajeEscrito el 27 Dic 2010 04:52 am
Bueno para los que tengan la misma duda, la solución es la función is_array jeje. Bueno y para utilizar bien el bloque try catch hay que saber sobre el control de errores en php, la leere.

Por diego1311

61 de clabLevel



 

Lima - Perú

msie8
Citar            
MensajeEscrito el 27 Dic 2010 03:27 pm
el try catch sirve para capturar el errory tratarlo a lo que me refiero es que podes generar un error especificando cual es el problema y como tratarlo no lo debes usar como reemplazo de if
por ejemplo podrias crear algo como

Código PHP :

function dividir($numero,$entre)
{
   switch(true)
   {
      case ($entre == 0):throw new Exception('la Division no se puede realizar entre cero');
      break;
      case $numero > 99999999: throw new Exception('el Numero es muy grande');
      break;
   }
   return ($numero/$entre);
}
$resultado = dividir(5,0);
echo "el resultado es $resultado";

esto te retorna un error a nivel de detener el script bueno el uso que se le da al try catch es en caso de que exista un error que hacer ? eso es eleccion del usuario si mostrar el mensaje de error y saberlo tratar o no hacer nada
tomando el ejemplo anterior

Código PHP :

try
{
   $resultado = dividir(5,0);
}
catch (Exception $e)
{
   echo 'hubo un error y no se puede realizar la division';
   $resultado = null;
}

echo "el resultado es $resultado";

el asunto es que try catch te da la posibilidad de que hacer con el error que se genera un dia talvez quieras msotrar el error y al dia siguiente peus no queires mostrar nada y que siga corriendo tu script esto sin tocar mucho el codigo generado
bueno y ademas esto de try catch mas se aplica la POO ya que esto cumple lo que se llama encapsulamiento

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 28 Dic 2010 03:26 am
Ok, gracias por responder

Por diego1311

61 de clabLevel



 

Lima - Perú

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.