Curso POO PHP Excepcións

De Manuais Informática - IES San Clemente.
Ir a la navegación Ir a la búsqueda

Excepcións

A partir da versión 5 introduciuse en PHP un modelo de excepcións similar ao existente noutras linguaxes de programación:

  • o código susceptible de producir algún erro introdúcese nun bloque try.
  • cando se produce algún erro, lánzase unha excepción utilizando a instrución throw.
  • despois do bloque try debe haber como mínimo un bloque catch encargado de procesar o erro.
  • se unha vez rematado o bloque try non se lanzou ningunha excepción, continúase coa execución na liña seguinte ao bloque ou bloques catch.
  • a partires de PHP 5.5 pódese utilizar un bloque finally despois dos bloques catch. O código de dentro do bloque finally sempre se executará despois dos bloques try e catch, independentemente de que se lanzase unha excepción ou non, e antes de que o fluxo normal de execución continúe.

PHP ofrece unha clase base Exception para utilizar como manexador de excepcións. Para lanzar unha excepción non é necesario indicar ningún parámetro, aínda que de forma opcional se pode pasar unha mensaxe de erro e un código de erro. Entre os métodos que podes usar cos obxectos da clase Exception están:

  • getMessage. Devolve a mensaxe, en caso de que se puxese algún.
  • getCode. Devolve o código de erro se existe.
try {
    if ($divisor == 0) throw new Exception("División por cero.");
    $resultado = $dividendo / $divisor;
}
catch (Exception $e) {
    echo "Produciuse o seguinte erro: ".$e->getMessage();
}    
finally {
    echo "\n";
}

As funcións internas de PHP e moitas extensións como MySQLi usan o manexador de erros clásico. Só as extensións máis modernas orientadas a obxectos, como é o caso de PDO, utilizan este modelo de excepcións. Neste caso, o máis común é que a extensión defina os seus propios manexadores de erros herdando da clase Exception.


--Víctor Lourido 20:29 13 jul 2013 (CEST)