CodeGym /Curso Java /Frontend SELF PT /Tratamento de Exceções

Tratamento de Exceções

Frontend SELF PT
Nível 36 , Lição 4
Disponível

10.1 Bloco try...catch

O tratamento de exceções é um aspecto importante da programação que ajuda a melhorar a robustez e a confiabilidade do código. No JavaScript, as palavras-chave try, catch, finally e throw são usadas para lidar com exceções. Na palestra, vamos explorar essas palavras-chave, sua sintaxe e exemplos de uso.

1. Bloco try...catch

A construção try...catch é usada para tratar erros que ocorrem no bloco de código try. Se ocorrer um erro no bloco try, o controle é passado para o bloco catch, onde o erro pode ser tratado.

Sintaxe:

    
      try {
        // Código que pode lançar uma exceção
      } catch (error) {
        // Código para tratar a exceção
      }
    
  

Neste exemplo, embora a divisão por zero não cause um erro no JavaScript, se fosse outro tipo de erro (como acessar uma variável indefinida), o bloco catch lidaria com ele:

JavaScript
    
      try {
        let result = 10 / 0;

        console.log(result);

      } catch (error) {
        console.error('An error occurred:', error);
      }
    
  

10.2. Bloco finally

O bloco finally é usado para executar o código que deve ser executado independentemente de uma exceção ter ocorrido no bloco try ou não. O bloco finally segue o bloco catch.

Sintaxe:

    
      try {
        // Código que pode lançar uma exceção
      } catch (error) {
        // Código para tratar a exceção
      } finally {
        // Código que sempre será executado
      }
    
  

Neste exemplo, a mensagem This will always execute. será exibida independentemente de um erro ter ocorrido ou não:

JavaScript
    
      try {
        let result = 10 / 0;
        console.log(result);
      } catch (error) {
        console.error('An error occurred:', error);
      } finally {
        console.log('This will always execute.');
      }
    
  

10. 3. Operador throw

O operador throw é usado para lançar exceções explicitamente. Com ele, você pode lançar erros personalizados.

Sintaxe:

    
      throw expression;
    
  

Onde:

  • expression: qualquer expressão ou objeto que será lançado como uma exceção

Exemplo de uso

Neste exemplo, um erro é lançado se tentar dividir por zero, e o bloco catch trata esse erro:

JavaScript
    
      function divide(a, b) {
        if (b === 0) {
          throw new Error('Division by zero is not allowed.');
        }
        return a / b;
      }

      try {
        let result = divide(10, 0);
        console.log(result);
      } catch (error) {
        console.error('An error occurred:', error.message);
      }
    
  

10.4 Exemplos avançados e uso

Exemplo 1: Múltiplas exceções

Às vezes, diferentes tipos de erros podem ocorrer em um bloco try. Você pode tratá-los de maneiras diferentes usando as propriedades do objeto error.

Neste exemplo, tratamos um erro de sintaxe JSON separadamente de outros possíveis erros:

JavaScript
    
      try {
        JSON.parse('{ malformed JSON string }');
      } catch (error) {
        if (error instanceof SyntaxError) {
          console.error('JSON Syntax Error:', error.message);
        } else {
          console.error('Unexpected Error:', error);
        }
      } finally {
        console.log('Parsing attempt finished.');
      }
    
  

Exemplo 2: Blocos try...catch aninhados

Você pode usar blocos try...catch aninhados para um tratamento de erro mais refinado.

Neste exemplo, o erro que ocorre no primeiro bloco try é tratado pelo bloco interno catch, que em seguida relança o erro para tratamento pelo bloco externo catch:

JavaScript
    
      try {
        try {
          let result = divide(10, 0);
          console.log(result);
        } catch (innerError) {
          console.error('Inner catch:', innerError.message);
          throw innerError;
        }
      } catch (outerError) {
        console.error('Outer catch:', outerError.message);
      } finally {
        console.log('Nested try...catch finished.');
      }

      function divide(a, b) {
        if (b === 0) {
          throw new Error('Division by zero is not allowed.');
        }
        return a / b;
      }
    
  

Exemplo 3: Usando finally para liberar recursos

O bloco finally é útil para liberar recursos, como fechar arquivos ou finalizar conexões de rede.

Neste exemplo, o arquivo sempre será fechado, independentemente de ter ocorrido erro durante sua leitura ou não:

JavaScript
    
      function readFile(filePath) {
        let file;
        try {
          file = openFile(filePath); // Função para abrir o arquivo
          // Trabalhar com o arquivo
        } catch (error) {
          console.error('Error reading file:', error.message);
        } finally {
          if (file) {
            closeFile(file); // Função para fechar o arquivo
          }
          console.log('File processing finished.');
        }
      }

      function openFile(path) {
        // Lógica para abrir o arquivo
      }

      function closeFile(file) {
        // Lógica para fechar o arquivo
      }

      readFile('path/to/file.txt');
    
  

O tratamento de exceções no JavaScript usando try, catch, finally e throw permite criar aplicações mais confiáveis e robustas. Compreender e usar corretamente essas construções ajuda a gerenciar erros de forma eficaz, liberar recursos e melhorar a experiência do usuário.

1
Опрос
Objetos,  36 уровень,  4 лекция
недоступен
Objetos
Objetos
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION