Introdução
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.
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.
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.
Sintaxe
O bloco de instrução Try Catch basicamente pode ser dividido em três partes.
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.
Exemplo de sintaxe do Try Catch:
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
}
Exceções do Javascript
Quando ocorre algum erro, o Javascript envia esse erro para o bloco Catch para que possa realizar o tratamento, esses erros podem ser de alguns tipos como:
Type Error: Erro de quando um valor não é do tipo esperado.
Range Error: Erro quando o valor não está no conjunto ou intervalo especificado.
ReferenceError: Erro quando uma variável não existe.
SyntaxError: Erro ao colocar uma sintaxe de forma incorreta.
Dentro do catch é possível realizar uma verificação para fazer tratamentos diferentes com diferentes tipos de erro.
Por exemplo, caso seja um erro interno, é possível salvar em arquivo de log ou algo do tipo, mas se for um erro de digitação do usuário, pode exibir alerta na tela.
try {
minhaRotina(); // pode lançar três tipos de exceções
} 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
logErrors(e); // passa o objeto de exceção para o manipulador de erro
}
}
Criando um erro
No Try Catch é possível gerar erros e isso pode ser necessário para criar as regras do sistema, e no caso é possível lançar esses erros para o bloco Catch e realizar algum tratamento.
Por exemplo, vamos supor que no sistema tenha um campo que precisa ser um valor inteiro e positivo, nesse caso a regra do negócio é não deixar números negativos entrar nesse campo.
Para isso é possível lançar uma exceção no Try Catch para tratar essa regra e indicar ao usuário que o número do campo não pode ser negativo. Exemplo:
function UserException(message) {
this.message = message;
this.name = "UserException";
}
try {
let numero = document.getElementById("campoNumero").value;
if(numero < 0) {
throw new UserException("O número deve ser inteiro e positivo");
}
} catch (error) {
console.log(error.name); //UserException
console.log(error.message); //O número deve ser inteiro e positivo
}
Com isso, o Try Catch foi utilizado para criar um erro personalizado, e esse erro pode ser tratado como se fosse algum outro erro do Javascript.
Essa função pode ser útil para adicionar as regras do sistema ainda no frontend, reduzindo a probabilidade de chegar algum dado incorreto no backend, e isso pode economizar processamento do sistema e já dar um feedback mais rápido ao usuário.
Para saber mais
Gravei um vídeo completo sobre o Try Catch, e nele mostro na prática como funcionam alguns erros do Javascript e também como criar o erro personalizado:
Conclusão
O Try Catch é uma excelente forma de se tratar possíveis erros que podem acontecer no sistema. Os erros podem acontecer por vários motivos, e deixar o sistema preparado para isso é muito importante para que não ocorra comportamentos indesejados.
Muito obrigado por ler até aqui, até o próximo post 🙂
Para ver outros canais onde o posto conteúdo, meu Github e também cursos, veja os Links do Programando Soluções.
Aprenda a testar Aplicações Javascript
Referências
https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Statements/try…catch
https://www.w3schools.com/js/js_errors.asp
http://programadorobjetivo.co/boas-praticas-javascript-crie-suas-proprias-excecoes/