Fundamentos de la gestión de errores

Flash Player 9 y posterior, Adobe AIR 1.0 y posterior

Un error en tiempo de ejecución es algo que no funciona en el código ActionScript y que impide la ejecución prevista del contenido de ActionScript. Para asegurarse de que los usuarios pueden ejecutar correctamente el código ActionScript, se debe añadir a la aplicación código para gestionar errores, es decir, para corregirlos o al menos indicar al usuario qué ha sucedido. Este proceso se denomina gestión de errores .

La gestión de errores es un campo amplio que incluye respuestas a muchas clases de errores generados durante la compilación o mientras se ejecuta una aplicación. Los errores que se producen en tiempo de compilación suelen ser más fáciles de identificar; se deben corregir para completar el proceso de creación de un archivo SWF.

La detección de errores en tiempo de ejecución puede resultar más difícil, ya que para que se produzcan, el código debe ejecutarse. Si un segmento de su programa tiene varias ramas de código, como una sentencia if..thenthen..else , debe comprobar todas las condiciones posibles, con todos los valores de entrada posibles que puedan utilizar los usuarios reales, con el fin de confirmar que el código no contenga errores.

Los errores en tiempo de ejecución se pueden dividir en dos categorías: los errores de programa son errores del código ActionScript, como la especificación del tipo de datos incorrecto para un parámetro de método; los errores lógicos son errores de la lógica (la comprobación de datos y la manipulación de valores) del programa, como la utilización de la fórmula incorrecta para calcular tipos de interés en una aplicación bancaria. Los dos tipos de error pueden detectarse y corregirse si se prueba la aplicación minuciosamente.

Lo ideal sería que se identificaran y se eliminaran todos los errores de la aplicación antes de que pasara a disposición de los usuarios finales. Sin embargo, no todos los errores pueden predecirse o evitarse. Por ejemplo, imagine que la aplicación ActionScript carga información de un sitio web determinado que se encuentra fuera de su control. Si en algún momento dicho sitio no está disponible, la parte de la aplicación que depende de los datos externos no se comportará correctamente. El aspecto más importante de la gestión de errores implica prepararse para estos casos desconocidos, así como gestionarlos adecuadamente para que los usuarios puedan seguir utilizando la aplicación, o al menos obtengan un mensaje de error claro que indique el fallo de funcionamiento.

Los errores en tiempo de ejecución se representan de dos formas en ActionScript:

  • Clases Error: muchos errores tienen una clase de error asociada a ellos. Cuando se produce un error, el motor de ejecución de Flash (como Flash Player o Adobe AIR) crea una instancia de la clase de error específica asociada a dicho error. El código puede utilizar información contenida en ese objeto de error para generar una respuesta adecuada al error.

  • Eventos de error: a veces se produce un error cuando el motor de ejecución de Flash normalmente desencadenaría un evento. En estos casos, se desencadena un evento de error. Cada evento de error tiene una clase asociada y el motor de ejecución de Flash transmite una instancia de dicha clase a los métodos que están suscritos al evento de error.

Para determinar si un método concreto puede desencadenar un error o un evento de error, consulte la entrada del método en Referencia de ActionScript 3.0 para la plataforma de Adobe Flash .

Conceptos y términos importantes

La siguiente lista de referencia contiene términos importantes que aparecerán al programar rutinas de gestión de errores:

Asincrónico
Comando de programa, como una llamada de método que no proporciona un resultado inmediato; en su lugar, origina un resultado (o error) en forma de evento.

Capturar
Cuando se produce una excepción (error en tiempo de ejecución) y el código la reconoce, se dice que el código captura la excepción. Una vez capturada la excepción, el motor de ejecución de Flash deja de notificar la excepción a otro código ActionScript.

Versión de depuración
Versión especial del motor de ejecución de Flash como, por ejemplo, versión de depuración de Flash Player o AIR Debug Launcher (ADL), que incluye código para notificar a los usuarios errores en tiempo de ejecución. En la versión estándar de Flash Player o Adobe AIR (la que tienen la mayoría de los usuarios), se omiten los errores no gestionados por el código ActionScript. En las versiones de depuración (que se incluye en Adobe Flash CS4 Professional y Adobe Flash Builder), aparece un mensaje de advertencia cuando se produce un error no gestionado.

Excepción
Error que sucede mientras se ejecuta una aplicación y que el motor de ejecución de Flash no puede resolver por sí solo.

Nueva emisión
Cuando el código detecta una excepción, el motor de ejecución de Flash no vuelve a notificar otros objetos de la excepción. Si resulta importante notificar la excepción a otros objetos, el código debe volver a emitir la excepción para que se vuelva a iniciar el proceso de notificación.

Sincrónico
Comando de programa, como una llamada de método, que proporciona un resultado inmediato (o emite inmediatamente un error), lo que implica que la respuesta puede utilizarse con el mismo bloque de código.

Emitir
Operación de notificación al motor de ejecución de Flash (y, por lo tanto, notificación a otros objetos y al código ActionScript) de que se ha producido un error; se conoce como emitir un error.