Errores de ejecución

Los errores de ejecución pueden resultar difíciles de detectar y corregir. Un _script_ PHP contiene un error sintáctico o no lo contiene. Si lo tiene, el analizador lo detecta. Los errores de ejecución no solo se producen a causa de los contenidos de un _script_, pueden deberse a interacciones entre dicho _script_ y otros eventos o condiciones.

La siguiente instrucción:

<?php
require ('nombredearchivo.php');
?>

Es un _script_ PHP perfectamente válido. No contiene errores sintácticos. Sin embargo, puede generar un error de ejecución. Si ejecutamos esta instrucción y no existe el fichero _nombredearchivo.php_ o el usuario con el que se ejecuta dicho _script_ no tiene permisos de lectura, obtendremos un _warning_ y error como este.

Warning: require(nombredearchivo.php) [function.require]:
   failed to open stream: No such file or directory in
   C:\wamp\www\sesion5\index.php on line 2
Fatal error: require() [function.require]:
   Failed opening required 'nombredearchivo.php' (include_path='.;C:\wamp\php\pear\')
   in C:\wamp\www\sesion5\index.php on line 2

Aunque no hay nada erróneo en nuestro código, como depende de un archivo que puede o no existir en distintos momentos cuando se ejecute el código, puede generar un error de ejecución. Las tres siguientes instrucciones de PHP son válidas. Desafortunadamente, combinadas, intentan realizar algo imposible: dividir por cero.

<?php
   $i = 10;
   $j = 0;
   $k = $i/$j;
?>

Este fragmento de código genera la siguiente advertencia:

Warning: Division by zero in C:\wamp\www\sesion5\index.php on line 4

Resulta muy sencillo de corregir. Nadie escribiría a propósito un código que intentara dividir por cero, pero si no se comprueban las entradas de usuario se puede producir este tipo de error.

El siguiente código genera en ocasiones el mismo error pero puede resultar más difícil de aislar y corregir ya que sólo se produce en ocasiones:

<?php
   $i = 10;
   $k = $i/$_GET['input'];
?>

Se trata de uno de los muchos errores de ejecución que podemos ver al probar nuestro código. Entre las principales causas de los errores de ejecución podríamos destacar las siguientes:

  • Llamadas a funciones que no existen.
  • Lectura o escritura de archivos.
  • Interacción con MySQL u otras bases de datos.
  • Conexiones a servicios de red.
  • Comprobación de entrada de datos incorrecta.

results matching ""

    No results matching ""