domingo, 7 de agosto de 2011

Manejo de excepciones en PHP

Como todos ya sabemos el manejo de excepciones es vital al momento de validar un sistema, y mucho más en el caso de sistemas web.

Pues como sabemos, PHP es un lenguaje de programación orientado a web. Éste realiza el manejo de excepciones, aunque no al mismo nivel de otros lenguajes de programación,  JAVA por ejemplo.

PHP trae consigo una clase general para todas las excepciones, que para los programadores como yo, que venimos desarrollando en este lenguaje de programación web nos viene de maravilla.

Colocaré una porción de código para hacer la explicación un poco más amena y se entienda a detalle la descripción de la clase.

Nombre de la clase en PHP: Exception
Nombre del archivo: ejemploDivision.php

1) La forma que todos de seguro creerán que se podrá controlar una excepción en PHP, es lo normal si el programador viene de conocimientos como JAVA.


Pues NO, así no se debe controlar una expceción, en PHP esto simplemente es un error y efectivamente asi nos lo muestra cuando ejecutamos nuestro código (Observen en la siguiente imagen). PHP 5 ya trae manejo de excepciones pero la mayoría de funciones de PHP producen errores en vez de excepciones (Buff, bueno no nos queda mas que adaptarnos, total es libre)

2) La forma de programar para que verdaderamente coja la excepción es crear nosotros mismos una función que lance la excepción a partir del error encontrado.




Veamos los resultados.


Explicare mas a detalle que pasa.

set_error_handler("captura_excepciones"): Captura los errores automáticamente y los envía a la función que nosotros hemos creado, en el caso de este ejemplo captura_excepciones. Una vez dentro de nuestra función creada lanzaremos la excepción con la sentencia throw.

$e->getMessage(): Nos devuelve el mensaje que lanzamos en el throw.

Existen otras sentencias que podemos utilizar para ayudarnos:
$e->getCode(): Nos devuelve el código de la excepción
$e->getLine(): Nos devuelve en que línea se ha producido la excepción.
$e->getFile(): Nos devuelve el archivo donde se ha lanzado la excepción.

Espero haya servido de ayuda este ejemplo básico, prueben esto en sus PCs.

Dejo un ejemplo más avanzado que lo pueden descargar de aquí

Saludos y hasta la proxima

Carlos Zacarías.

5 comentarios:

  1. Me parece muy interesante!, PHP tuvo que agregar la fncion set_error_handler desde que version??? para poder manejar las expceciones de tal modo!

    ResponderEliminar
  2. Se ve muy bien la apariencia de tu blog amigo, gracias voy a probar el try...

    ResponderEliminar
  3. ya!, esta mejor el codigo descargable por que maneja try-catch Orientado a Objetos y hace uso de la herencia, muy bien

    ResponderEliminar
  4. Gracias vsantos, esto me anima a seguir aportando. Saludos

    ResponderEliminar