Você está na página 1de 9

MÓDULO: DESENVOLVER APLICAÇÕES WEB COM JAVASCRIPT

6. Tratar excepções com JavaScript

Quando se trata de manipulação de erros no JavaScript, existem dois tipos de erros que você pode
encontrar:
✓ O primeiro tipo de erros são erros de sintaxe.
✓ O segundo tipo são erros de tempo de execução.

Erros de sintaxe

Erros de sintaxe também são chamados de erros de análise. Isso ocorre quando o analisador
JavaScript interpreta seu código. Quando um desses erros ocorre, afecta apenas o código que está
no mesmo encadeamento. O restante do código não é afectado.

Exemplos de erros de sintaxe:


✓ Esquecimento ao abrir ou fechar parênteses ou chavetas;
✓ Omissão de ponto e virgula, aspas, pelicas, nas instruções;
✓ Omissão de ponto, dois pontos, nos objeto;
Qualquer um desses erros fará com que a sintaxe seja inválida e interrompa seu programa.

Existem algumas maneiras de evitar esses tipos de erros, uma é verificar o seu código e procurá-
los(Isso não é eficaz e pode levar muito tempo), outra opção é usar alguma ferramenta ou plugin
IDE

Erros de tempo de execução

O segundo tipo de erros são erros de tempo de execução. Esses erros também são chamados de
exceções. Esses erros ocorrem durante a execução do seu código, quando você o executa. Um
exemplo simples pode ser chamar um método que não existe. Outra pode estar passando a String
para uma função em vez do número ou o contrário.

Importante é que cada um desses erros seja válido na visualização do JavaScript. Sim, você pode
digitar incorretamente algum nome de variável ou função. No entanto, a própria sintaxe ainda é

Américo I. Langa
MÓDULO: DESENVOLVER APLICAÇÕES WEB COM JAVASCRIPT

válida. No faltam dois pontos ou chavetas. Se isso for verdade, o JavaScript permitirá que seu
código seja compilado. Você encontra esses erros apenas quando executa seu código.

Se o seu IDE tiver suporte para um desses superconjuntos, ele ajudará a detectar erros de tempo
de execução.

Além dos IDE e/ou PlugIns, existem algumas ferramentas internas do JavaScript que facilitarão
o tratamento de erros, sendo os comumente usados Tray-Catch, Throw, Error.

TRATAR ERROS COM TRY-CATCH

O try-catch é utilizado para tratar erros que podem acontecer dentro do sistema. Esses erros
podem ser por codificação do programador, entrada incorreta de dados pelo usuário ou até mesmo
imprevistos.

O tratamento de um erro pode ser uma mensagem na tela para o usuário ou salvar esse erro em
um arquivo de logs para que seja analisado. Existem outras formas, mas essas são as principais.

Quando qualquer desses erros acontece, o try-catch lança uma exceção, que é um objeto de erro,
e com isso é possível realizar o tratamento ideal para a situação

SINTAXE:

try {
// código que inclui comandos/invocações de métodos
// que podem gerar uma situação de exceção.
} catch (error) {
// bloco de tratamento do erro
} finally {
// bloco de código que sempre será executado após
// o bloco try, independentemente de sua conclusão
// ter ocorrido normalmente ou ter sido interrompida
}

O bloco de instrução try-catch basicamente pode ser dividido em três partes.

Américo I. Langa
MÓDULO: DESENVOLVER APLICAÇÕES WEB COM JAVASCRIPT

A primeira parte: é o try, dentro dele ficará o código a ser executado que pode ser passível
de algum erro, como por exemplo, chamadas a API, dados vindos de usuário e entre outros. O
Try basicamente diz, “tente executar o que está aqui”.

A segunda parte: é o Catch, caso o código que está sendo executado dentro do Try tenha
algum erro, a execução é interrompida e ai começa a execução do bloco Catch, ele pode receber
um parâmetro que normalmente é nomeado como error. Esse é um objeto de erro e com ele é
possível realizar o tratamento para saber o que ocasionou o erro.

A terceira parte: é opcional, é o bloco Finally, que independente de dar erro ou não, este
será executado.

Exercício Exemplo

Américo I. Langa
MÓDULO: DESENVOLVER APLICAÇÕES WEB COM JAVASCRIPT

Repare que em html na linha 27 o input tem o id=”valor2”, no entanto em JavaScript na linha
12 tem-se var v2= form.valor3.value, neste caso, este não existe, repara o resutado da
execução.

Agora corrige o código: na linha 12, coloque var v2 = form.valor2.value; e execute o


seu programa com valores numéricos.

Execute novamente inserido valores não numéricos.

Erros mais comuns no JavaScript

✓ Uncaught TypeError: Cannot Read Property:


Este erro ocorre quando você quer acessar uma propriedade ou método de um objeto que
não existe.

✓ TypeError: ‘undefined’ Is Not an Object:


Este erro é o mesmo que foi descrito acima, a diferença é que esta mensagem de erro
aparece no Chrome.

Américo I. Langa
MÓDULO: DESENVOLVER APLICAÇÕES WEB COM JAVASCRIPT

✓ TypeError: ‘null’ Is Not an Object


O erro acima ocorre quando você chama uma propriedade ou método de um objeto null.
É igual ao primeiro erro, a diferença é que esta mensagem é específica do Safari.

✓ TypeError: Object Doesn’t Support Property


Se você utiliza o navegador Internet Explorer, este erro ocorre quando você chama um
método que não foi definido.

✓ TypeError: ‘this.<>’ Is Not a Function


Este erro ocorre quando você chama uma função que não foi definida, esta mensagem
pode aparecer no Chrome e no Firefox

✓ Uncaught RangeError
Este erro ocorre no Chrome por dois motivos, o primeiro pode ser uma função recursiva
que não terminou, e o segundo, um valor fora do intervalo esperado para uma função.

✓ EvalError
Esta tipo de erro existe por razões de compatibilidade, já que não existe mais deste a
versão 5.1 do ECMAScript, ele ocorria quando a função global eval foi utilizada de forma
incorreta. Portanto, provavelmente você não deve ver erros deste tipo

✓ RangeError
Ocorre quando um número informado não é compatível com o intervalo de números
válidos. Algumas mensagens de erro deste tipo são as seguintes:
o RangeError: argument is not a valid code point
o RangeError: precision is out of range
o RangeError: invalid array length
o RangeError: invalid date
o RangeError: radix must be an integer
o RangeError: repeat count must be less than infinity
o RangeError: repeat count must be non-negative
5

Américo I. Langa
MÓDULO: DESENVOLVER APLICAÇÕES WEB COM JAVASCRIPT

✓ ReferenceError
Os erros de referência ocorrem quando ocorre uma referência inválida, ou seja, se tenta
acessar uma variável/metodo/propriedade que não existe.

✓ SyntaxError
Ocorrem quando é detectado um erro de sintaxe na programação.

✓ TypeError
Estes erros ocorrem quando um valor tem um tipo diferente daquele que é esperado.

✓ URIError
Ocorre quando passamos uma URI inválida para as seguintes funções globais:
decodeURI(), decodeURIComponent(), encodeURI(), encodeURIComponent()

Em casos de instruções com mais de um erros previamente previstas pode-se recorrer ao


exemplo para o seu tratamento:

try {
//Instruções susceptíveis a erros
} catch (e if e instanceof TypeError) {
// declarações para manipular exceções TypeError
} catch (e if e instanceof RangeError) {
// declarações para manipular exceções RangeError
} catch (e if e instanceof EvalError) {
// declarações para manipular exceções EvalError
} catch (e) {
// declarações para manipular quaisquer exceções não especificadas
logMyErrors(e); // passa o objeto de exceção para o manipulador de erro
}

Ou ainda pode colocar único catch e recorrer as instruções condicionais para tratar diferentes
erros.

try {
// Instruções susceptíveis a erros
} catch (e) {
if (e instanceof TypeError) {
// declarações para manipular exceções TypeError
} else if (e instanceof RangeError) {
// declarações para manipular exceções RangeError
} else if (e instanceof EvalError) {
// declarações para manipular exceções EvalError
} else {
// declarações para manipular quaisquer exceções não especificadas
6

Américo I. Langa
MÓDULO: DESENVOLVER APLICAÇÕES WEB COM JAVASCRIPT

logMyErrors(e); // passa o objeto de exceção para o manipulador de erro


}
}

Laçamento de excepções com throw


A declaração throw lança uma exceção definida pelo usuário. A execução da função atual vai
parar (as instruções após o throw não serão executadas), e o controle será passado para o primeiro
bloco catch na pilha de chamadas. Se nenhum bloco catch existe entre as funções "chamadoras",
o programa vai terminar.

Sintaxe:

throw expressão;

Exercício exemplo1

Fazer um programa que permite a entrada de três notas de Avaliações Sistemáticas (AS) e uma
de Avaliação Periódica (AP). Calcule a media aritméticas de ASs e média do Semestre, sabendo
que é uma ponderação de duas vezes nota de AP acrescida da media aritmética de ASs por três.

Encontre a situação do estudante tendo em conta que meores que 10 excluem, igual a 10 e inferir
a 14 Admitem e igual ou superior a 14 dispensam.

As notas devem serem validadas no contexto de não ser vazio, não ser caracteres, estar
compreendido entre 0 a 20 valores.

Américo I. Langa
MÓDULO: DESENVOLVER APLICAÇÕES WEB COM JAVASCRIPT

Américo I. Langa
MÓDULO: DESENVOLVER APLICAÇÕES WEB COM JAVASCRIPT

Américo I. Langa

Você também pode gostar