Diferencia entre revisiones de «PHP Control de erros»
Ir a la navegación
Ir a la búsqueda
| Línea 7: | Línea 7: | ||
* A idea é moi simple: En caso de erro imos 'capturar' ou 'lanzar' unha excepción. | * A idea é moi simple: En caso de erro imos 'capturar' ou 'lanzar' unha excepción. | ||
| − | : Unha excepción é un tipo de erro que pode darse na execución de programas. Normalmente son erros non controlados por nos nas liñas de programación. | + | : Unha excepción é un tipo de erro que pode darse na execución de programas. Normalmente son erros non controlados por nos nas liñas de programación, pero tamén podemos 'provocar' unha excepción enviando un texto e un código. |
| + | |||
| + | * <u>AVISO:</u> Indicar que no caso de PHP 'tradicional' as funcións PHP non 'lanzan' excepcións, se non que 'avisan' con warnings, errors,...dependendo do nivel de erro a amosar, o cal está indicado na [http://php.net/manual/es/errorfunc.configuration.php#ini.display-errors directiva display_error de php.ini]. | ||
| + | |||
| + | |||
| + | A sintaxe é moi sinxela: | ||
| + | ::<syntaxhighlight lang="java" line enclose="div" highlight="6" > | ||
| + | try { | ||
| + | |||
| + | // Sentenzas a controlar | ||
| + | |||
| + | } | ||
| + | catch (Excepcion $e){ | ||
| + | // Sentenzas a executar en caso de lanzarse a excepción | ||
| + | |||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | * Liña 6: O obxecto $e pertence á clase Excepcion e dispón entre as súas propiedades e métodos: | ||
| + | :* $e->getMessage(); // Devolve a mensaxe da excepción | ||
| + | :* $e->getCode(); // Devolve o código da excepción | ||
| + | |||
| + | * Cando se produce a excepción, o control do programa vai a sección catch, deixando de executarse o resto de liñas do programa dentro da sección try. | ||
| + | |||
| + | |||
| + | |||
| + | * A partires da versión PHP 5.5 podemos incorporar outra sección: '''finally'''. | ||
| + | : Dita sección execútase sempre, haia ou non unha excepción e ao final de todo, despois de executar a última sentenza controlada ou despois de executar a sección catch se houbo unha excepción. | ||
| + | ::<syntaxhighlight lang="java" line enclose="div" highlight="6" > | ||
| + | try { | ||
| + | |||
| + | // Sentenzas a controlar | ||
| + | |||
| + | } | ||
| + | catch (Excepcion $e){ | ||
| + | // Sentenzas a executar en caso de lanzarse a excepción | ||
| + | |||
| + | } | ||
| + | finally{ | ||
| + | // Sentenzas que sempre se executan | ||
| + | } | ||
| + | </syntaxhighlight> | ||
Revisión del 19:02 2 feb 2017
- Durante o desenvolvemento da aplicación imos atoparnos coa necesidade de controlar os erros que poidan darse nas chamadas ás diferentes funcións.
- Isto pode levar a programar cunha estrutura de if - else moi 'anidada', que faga que o código sexa pouco lexible.
- Para evitalo podemos facer uso das EXCEPCIÓNS.
- Podemos facer uso delas a partires da versión 5 de PHP.
- A idea é moi simple: En caso de erro imos 'capturar' ou 'lanzar' unha excepción.
- Unha excepción é un tipo de erro que pode darse na execución de programas. Normalmente son erros non controlados por nos nas liñas de programación, pero tamén podemos 'provocar' unha excepción enviando un texto e un código.
- AVISO: Indicar que no caso de PHP 'tradicional' as funcións PHP non 'lanzan' excepcións, se non que 'avisan' con warnings, errors,...dependendo do nivel de erro a amosar, o cal está indicado na directiva display_error de php.ini.
A sintaxe é moi sinxela:
1 try { 2 3 // Sentenzas a controlar 4 5 } 6 catch (Excepcion $e){ 7 // Sentenzas a executar en caso de lanzarse a excepción 8 9 }
- Liña 6: O obxecto $e pertence á clase Excepcion e dispón entre as súas propiedades e métodos:
- $e->getMessage(); // Devolve a mensaxe da excepción
- $e->getCode(); // Devolve o código da excepción
- Cando se produce a excepción, o control do programa vai a sección catch, deixando de executarse o resto de liñas do programa dentro da sección try.
- A partires da versión PHP 5.5 podemos incorporar outra sección: finally.
- Dita sección execútase sempre, haia ou non unha excepción e ao final de todo, despois de executar a última sentenza controlada ou despois de executar a sección catch se houbo unha excepción.
1 try { 2 3 // Sentenzas a controlar 4 5 } 6 catch (Excepcion $e){ 7 // Sentenzas a executar en caso de lanzarse a excepción 8 9 } 10 finally{ 11 // Sentenzas que sempre se executan 12 }
-- Ángel D. Fernández González -- (2016).