JavaScript try ... catch ... finally Declaração

Neste tutorial, você aprenderá sobre as instruções try… catch… finally para lidar com exceções em JavaScript com a ajuda de exemplos.

Os blocos try, catche finallysão usados ​​para tratar exceções (um tipo de erro). Antes de aprender sobre eles, você precisa saber sobre os tipos de erros de programação.

Tipos de Erros

Na programação, pode haver dois tipos de erros no código:

Erro de sintaxe : Erro na sintaxe. Por exemplo, se você escrever consol.log('your result');, o programa acima gerará um erro de sintaxe. A grafia de consoleé um erro no código acima.

Erro de tempo de execução : este tipo de erro ocorre durante a execução do programa. Por exemplo,
chamar uma função ou variável inválida.

Esses erros que ocorrem durante o tempo de execução são chamados de exceções . Agora, vamos ver como você pode lidar com essas exceções.

JavaScript try… catch Statement

A try… catchinstrução é usada para tratar as exceções. Sua sintaxe é:

 try ( // body of try ) catch(error) ( // body of catch )

O código principal está dentro do trybloco. Durante a execução do trybloco, se ocorrer algum erro, ele vai para o catchbloco. O catchbloco trata os erros de acordo com as instruções catch.

Se nenhum erro ocorrer, o código dentro do trybloco é executado e o catchbloco é pulado.

Exemplo 1: Exibir Variável Não Declarada

 // program to show try… catch in a program const numerator= 100, denominator = 'a'; try ( console.log(numerator/denominator); // forgot to define variable a console.log(a); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); )

Resultado

 NaN Um erro detectado Mensagem de erro: ReferenceError: a não está definido

No programa acima, uma variável não é definida. Quando você tenta imprimir a variável a, o programa gera um erro. Esse erro foi detectado no catchbloco.

JavaScript try … catch … finally Declaração

Você também pode usar a try… catch… finallyinstrução para lidar com exceções. O finallybloco é executado quando o código é executado com sucesso ou se ocorre um erro.

A sintaxe do try… catch… finallybloco é:

 try ( // try_statements ) catch(error) ( // catch_statements ) finally() ( // codes that gets executed anyway )

Exemplo 2: tente … pegar … finalmente Exemplo

 const numerator= 100, denominator = 'a'; try ( console.log(numerator/denominator); console.log(a); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); ) finally ( console.log('Finally will execute every time'); )

Resultado

 NaN Um erro detectado Mensagem de erro: ReferenceError: a não está definido Finalmente será executado todas as vezes

No programa acima, ocorre um erro e esse erro é detectado pelo catchbloco. O finallybloco será executado em qualquer situação (se o programa for executado com sucesso ou se ocorrer um erro).

Nota : Você precisa usar catchou finallydeclaração após trydeclaração. Caso contrário, o programa gerará um erro Uncaught SyntaxError: Falta captura ou finalmente após tentativa.

JavaScript try… catch in setTimeout

O try… catchnão capturará a exceção se isso aconteceu em código " cronometrado ", como em setTimeout (). Por exemplo,

 try ( setTimeout(function() ( // error in the code ), 3000); ) catch (e) ( console.log( "won't work" ); )

O procedimento acima try… catchnão funcionará porque o mecanismo já saiu da try… catchconstrução e a função é executada mais tarde.

O try… catchbloco deve estar dentro dessa função para capturar uma exceção dentro de uma função cronometrada. Por exemplo,

 setTimeout(function() ( try ( // error in the code ) catch ( console.log( "error is caught" ); ) ), 3000);

Você também pode usar a throwinstrução com a try… catchinstrução para usar exceções definidas pelo usuário. Por exemplo, um certo número é dividido por 0 . Se você quiser considerar Infinityum erro no programa, poderá lançar uma exceção definida pelo usuário usando a throwinstrução para tratar essa condição.

Você aprenderá sobre a instrução throw do JavaScript no próximo tutorial.

Artigos interessantes...