Bugs / Error Handling

Introducción

JavaScript no ayuda mucho a la hora de encontrar problemas. Podemos activar el modo estricto para intentar que nos ayude un poquito más:

> function canYouSpotTheProblem() {
    "use strict";
    for (counter = 0; counter < 10; counter++)
       console.log("Happy happy");
  }
> canYouSpotTheProblem();
ReferenceError: counter is not defined

Nota

normalmente, JavaScript habría creado “counter” en el espacio global.

Dado que JavaScript no ayuda y normalmente es mucho más difícil encontrar fallos que programar, la alternativa es realizar mucho testing. Para esto tenemos “testing frameworks”.

Podemos usar “console.log(...)”.

Podemos usar Firebug en Firefox. El statement debugger en el código debería hacer que la herramienta de depuración del navegador pare en ese punto.

Algunas vez el error es inevitable y lo que hay que decidir es qué hacer ante ese valor.

Excepciones

Podemos generar excepciones:

> throw new Error("Invalid Position: lat/long should be...")

También podemos capturar las excepciones:

> try {
     pepe();
  } catch (error) {
     console.log("Ocurrió el error: " + error);
  }
Occurrió el error: ReferenceError: pepe is not defined