Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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
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.
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
}
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.
Américo I. Langa
MÓDULO: DESENVOLVER APLICAÇÕES WEB COM JAVASCRIPT
✓ 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()
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
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