Como funciona o try...catch...finally?
Na lição anterior, você aprendeu como lançar exceções em seus programas. Nesta lição, vamos ver como tratar esses erros de forma elegante em um bloco
try…catch…finally.
O bloco try é usado para envolver código que pode gerar um erro. Ele atua como um espaço seguro para tentar algo que pode falhar.
O bloco catch captura e trata erros que ocorrem no bloco try. Você pode usar o objeto Error dentro do catch para inspecionar o que deu errado.
O bloco finally é executado após os blocos try e catch, independentemente de um erro ter ocorrido. É comumente usado para tarefas de limpeza, como fechar arquivos ou liberar recursos.
Aqui está um exemplo de uso de um bloco try…catch:
function processInput(input) {
if (typeof input !== "string") {
throw new TypeError("Input must be a string.");
}
return input.toUpperCase();
}
try {
console.log("Starting to process input...");
const result = processInput(9);
console.log("Processed result:", result);
} catch (error) {
console.error("Error occurred:", error.message);
}
Neste exemplo, temos uma função chamada processInput que primeiro verifica se o input não é do tipo string. Se for esse o caso, então lançamos um erro. Caso contrário, retornamos o resultado de usar o método toUpperCase no input.
Chamamos a função dentro de um bloco try. Como a chamada da função gera um erro, ele será capturado dentro do bloco catch e a mensagem de erro será exibida no console.
O erro passado para o bloco catch é um objeto Error que contém informações sobre esse erro. Neste caso, estamos usando a propriedade message que exibe informações legíveis para humanos ao usuário.
Estamos usando o console.error porque ele foi projetado especificamente para registrar erros. Em muitos navegadores modernos, a saída de console.error() aparece em vermelho no console.
A declaração finally é executada independentemente de uma exceção ter sido lançada ou não.
try {
// Code that might throw an error
} catch (error) {
// Code to handle the error
} finally {
// Code that runs regardless of whether an error occurred or not
}
Um bom caso de uso para a declaração finally é se você estiver trabalhando com arquivos. Em JavaScript, você pode abrir um arquivo e usar um bloco try para escrever dados no arquivo. Se houver algum erro, você pode usar o catch para capturar esses erros. Então use a declaração finally para fechar o arquivo.Este módulo não possui perguntas. Marque como concluído.