viernes, 1 de abril de 2011

Identificación de eventos, excepciones y errores

Semana 10
Clase Programación Orientada a Objetos


Excepciones

El manejo de excepciones es una estructura de control en la programación creada para manejar situaciones anormales que pueden ser tratadas por el mismo programa que se desarrolla.

Es decir un programa podría admitir cierta cantidad de errores y continuar su proceso produciendo el mejor resultado que le es posible en vez de una salida desagradable que este llena de mensajes que puede que el usuario no entienda.
Muchas veces se soluciona con algún mensaje informativo y se termina; otras veces es una indicación de que se necesita cambiar la forma de resolución del problema.
Muchos lenguajes incluyen el manejo de excepciones, y javascript no es la "excepción".

Las excepciones son imprevistos que ocurren durante la ejecución de un programa.
Su objetivo, es separar el código para manejar errores de la lógica de aplicación del programa. Cuando ocurre una excepción lo que se hace es seguir la ejecución del programa hasta encontrar algo que maneje esa excepción, el cual en ese momento tomará el control de la aplicación.

En Javascript, manejar errores resulta muy necesario ya que presenta dificultad natural para testear aplicaciones. Por lo generar los errores en Javascript son poco informativos, especialmente en IE. Por lo que es muy interesante contar con operadores que permiten lanzar nuestros propios y particulares mensajes indicando que algo salió
mal.

Las excepciones pueden hacerse con:

Throw

La manera mas sencilla de lanzar errores es utilizando throw. Este comando nos permite mandar al navegador un evento similar al que ocurre cuando pasa algo imprevisto o hay un tipo inesperado de datos. El lenguaje permite enviar todo tipo de elementos, incluyendo texto, números, valores booleanos o incluso objetos. Pero la opción más usual es enviar el objeto nativo Error.

Try/Catch

Es una estructura en javascript que permite comprobar el flujo de un programa con comportamientos inesperados. La diferencia entre throw y try/catch es que throw detiene completamente la ejecución mientras que catch realiza una acción determinada frente a los errores para proseguir después con el flujo definido.

Este tipo de excepciones se estructuran con un código que evalúa una condición previa y propone una ejecución predefinida y otra alternativa frente a anormalidades.

En mi proyecto...

He estado pensando mucho las excepciones que podría manejar mi proyecto sin embargo me ha sido muy difícil pensar en alguna puesto que aun no llego a un punto avanzado de mi proyecto, se me viene a la mente quizá cuando el usuario quiera usar una fotografía de algún álbum de un amigo y que al momento de cargar el álbum por paint la foto aún este ahí pero a la hora de seleccionar esa foto en partícula ya no este entonces obviamente javascript ya no podrá acceder a ella, ya que no se encuentra en la memoria, pero me resulta difícil comprobar si de verdad pasaría eso, o si son excepciones que facebook ya maneja por defecto.

Entonces he pensado en esta otra, es una excepción para cuando el navegador web no soporta el elemento "canvas", entonces se mandaría un mensaje al usuario sugiriendo que utilicé otro navegador como Chrome o algo así.


Errores

Los errores comunes en javascript pueden ser "errores de ejecución" que ocurren cuando se están ejecutando los scripts, por ejemplo la llamada a alguna función que no ha sido definida.

La otra forma en la que Javascript muestra un error puede variar de un navegador a otro. En versiones antiguas algunos navegadores como IE y Netscape lanzaban al usuario una ventanita con el error y un botón de aceptar. En la actualidad estos errores se mantienen más ocultos para el usuario, ya que es molesto que salgan esos mensajes de error cuando puede ser que el usuario no se de cuenta de que estén ocurriendo.

Se pueden tratar también con try/catch.


En mi proyecto...


Una aplicación para mi proyecto podría ser cuando el usuario entró a la aplicación con acceso a internet, pero después dejo de tener acceso a internet, entonces la aplicación web que funciona cuando se tiene internet dejará de funcionar. Esto lo podré detectar con un script en Javascript que comprueba la conexión a internet queriendo cargar una página confiable tipo "wikipedia" o "google".

Otro enfoque de errores en mi código Javascript es un poco complicado ya que por ejemplo, cuando pruebo mi código y hay algún error el navegador simplemente no me muestra nada. Entonces tengo la opción de gestionar los errores utilizando el evento onerror que se lanza siempre que se produce un error en
el código Javascript.


Eventos


Los eventos es todo lo que permite la interacción con el usuario, se produce mediante la captura de eventos que se produce.

Los eventos se capturan mediante los manejadores de eventos, el proceso que se realiza se captura mediante funciones en Javascript que se llaman "manejadores de eventos"
Cuando un usuario visita una página web e interactúa con ella se crean eventos y con Javascript se puede definir que es lo que se quiere que ocurra cuando se producen los eventos.

Con los eventos podemos responder a las acciones de los usuarios. Ejemplos de manejadores de eventos:
  • onAbort
  • onBlur
  • onChange
  • onClick
  • onDragDrop
  • onMouseMove
  • onMouseOut
  • onMouseOver
  • onMouseUp
  • onError
Entre muchos otros.

En mi proyecto...

En mi proyecto estoy manejando ya varios eventos como:

  • onMouseOver:Este evento me sirve para saber cuando se esta pasando el mouse dentro del elemento canvas.
  • onMouseOut: Este manejado lo utilizo para saber cuando el mouse esta fuera del elemento canvas.
  • onClick: Y este otro será quizá el evento más utilizado en el proyecto me indica cuando el usuario a dado algún click en el elemento canvas, así como en botones, radios, etc., etc.

  • Y me faltan implementar alguos otros como drag-and-drop
En la próxima entrada implementaré algo de código para cada evento, excepción y error.

1 comentario: