Diferencia entre revisiones de «PHP Control de erros»

De MediaWiki
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.
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).