Neste tutorial, você aprenderá sobre as instruções throw do JavaScript com a ajuda de exemplos.
No tutorial anterior, você aprendeu a lidar com exceções usando a instrução try… catch do JavaScript. As instruções try e catch tratam as exceções de uma maneira padrão que é fornecida pelo JavaScript. No entanto, você pode usar a throw
instrução para passar exceções definidas pelo usuário.
Em JavaScript, a throw
instrução lida com exceções definidas pelo usuário. Por exemplo, se um determinado número é dividido por 0 , e se você precisa considerá-lo Infinity
como uma exceção, você pode usar a throw
instrução para tratar essa exceção.
Declaração de lançamento de JavaScript
A sintaxe da instrução throw é:
throw expression;
Aqui, expression
especifica o valor da exceção.
Por exemplo,
const number = 5; throw number/0; // generate an exception when divided by 0
Observação : a expressão pode ser string, booleana, número ou valor do objeto.
JavaScript lance com try … catch
A sintaxe de try… catch… throw
é:
try ( // body of try throw exception; ) catch(error) ( // body of catch )
Nota : Quando a instrução throw é executada, ela sai do bloco e vai para o catch
bloco. E o código abaixo da throw
instrução não é executado.
Exemplo 1: tente … pegar … jogar Exemplo
const number = 40; try ( if(number> 50) ( console.log('Success'); ) else ( // user-defined throw statement throw new Error('The number is low'); ) // if throw executes, the below code does not execute console.log('hello'); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); )
Resultado
Um erro detectado Mensagem de erro: Erro: o número é baixo
No programa acima, uma condição é verificada. Se o número for menor que 51 , um erro será gerado. E esse erro é lançado usando a throw
instrução.
A throw
instrução especifica a string The number is low
como uma expressão.
Nota : Você também pode usar outros construtores built-in de erro para erros padrão: TypeError
, SyntaxError
, ReferenceError
, EvalError
, InternalError
, e RangeError
.
Por exemplo,
throw new ReferenceError('this is reference error');
Relançar uma exceção
Você também pode usar a throw
instrução dentro do catch
bloco para relançar uma exceção. Por exemplo,
const number = 5; try ( // user-defined throw statement throw new Error('This is the throw'); ) catch(error) ( console.log('An error caught'); if( number + 8> 10) ( // statements to handle exceptions console.log('Error message: ' + error); console.log('Error resolved'); ) else ( // cannot handle the exception // rethrow the exception throw new Error('The value is low'); ) )
Resultado
Um erro detectado Mensagem de erro: Erro: Este é o lançamento Erro resolvido
No programa acima, a throw
instrução é usada dentro do try
bloco para capturar uma exceção. E a throw
instrução é relançada no catch
bloco que é executado se o catch
bloco não puder tratar a exceção.
Aqui, o catch
bloco trata a exceção e nenhum erro ocorre. Portanto, a throw
instrução não é relançada.
Se o erro não fosse tratado pelo bloco catch, a instrução throw seria relançada com a mensagem de erro Erro não capturado: o valor é baixo