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.