Diferencia entre revisiones de «Curso POO PHP Excepcións»
(Sin diferencias)
|
Revisión actual del 19:44 13 jul 2013
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)