Excepciones en PHP

Desde PHP 5 podemos hacer el uso de excepciones como casi en cualquier lenguage de programación, ¿excelente verdad? Pero hay que tener en cuenta que aunque las excepciones sean una gran herramienta, también podrían ser peligrosas cuando son usadas indebidamente, por ejemplo nuestra aplicación podría consumir muchos recursos.

Veamos un ejemplo del mal uso de excepciones:

PHP:

<?php
function foo() {
    if ($usuario !== "Hola") {
        throw new Exception("Usuario incorrecto");
    }
}
?>
 

Esto está totalmente incorrecto, ya que este es un error que podríamos manejarlo nosotros mismos, es un error de usuario y no de la aplicación. Las excepciones deben ser usadas sólo cuando nuestra aplicación termine debido a un estado excepcional.

El siguiente ejemplo terminará si la conexión a nuestra base de datos demoró mucho tiempo:

PHP:

<?php
function bar() {
    if (conexion_fuera_de_tiempo()) {
        throw new Exception("Connection timeout");
    }
}
?>
 

Debemos usar adecuadamente las excepciones ya que estas consumen un poco de recursos cada vez que las utilizamos, veamos:

PHP:

<?php
for ($i = 1000000; $i > 0; $i--) {
    throw new Exceptions("Je je, estoy acabando con la memoria...");
}
?>
 

Utilizemos corréctamente estas herramientas, pero sólo cuando sean necesarias. Sabemos que son de gran ayuda pero como vimos también pueden hacer que nuestra aplicación no sea la mejor.

Referencias

7 Replies to “Excepciones en PHP”

  1. Huh? no entiendo la relación de tu comentario con el post. Además lo que tan categóricamente afirmas es algo subjetivo... (lo dice alguien que odia PHP :P)

  2. Ympostor: no necesariamente, lo que es superior o inferior es la implementación de cada lenguaje.

    Por ejemplo la implementación de Python --que es dinámico-- para .NET (IronPython) es más rápida que la implementación original en C.

    También hay gente trabajando en una implementación de Ruby para .NET y para Java, no me sorprendería que la de .NET sea más rápida que la implementación original.

  3. Edgardo sos un defensor de miscro$oft por lo visto o vendedor a comisión. desde cuando .net es más rápido?? Eso solo si tenes una compu de la nasa comparada con una de escritorio accesible al bolsillo del trabajor medio.

  4. Muy bueno el link que ofreces en el artículo. Navegando un poco llegué a otras buenas prácticas en PHP ofrecidas por ese mismo sitio (curioso que no se pueda ingresar con IE). Vale la pena pegarles un ojo también: http://talks.php.net/show/php-best-practices (abajo a la derecha tiene el menú para navegarla... poca accesibilidad, eso sí).

    Se agradece por la información.
    Saludos.

Comments are closed.