Try...... finalmente instrução catch

Implementa o tratamento de erro para JScript.

try {
   [tryStatements]
} catch(exception) {
   [catchStatements]
} finally {
   [finallyStatements]}

Argumentos

  • tryStatements
    Opcional. Instruções de onde pode ocorrer um erro.

  • exceção
    Obrigatório. Qualquer nome de variável. O valor inicial de exceção é o valor do erro gerado.

  • catchStatements
    Opcional. Instruções para manipular erros que ocorrem a associada tryStatements.

  • finallyStatements
    Opcional. Instruções incondicionalmente executados após o outro processamento de erro ocorreu.

Comentários

O try...catch...finally declaração fornece uma maneira de lidar com alguns ou todos os possíveis erros que podem ocorrer em um determinado bloco de código, executando ainda o código. Se ocorrerem erros que o programador não foi tratada, o JScript simplesmente fornece sua mensagem de erro normal para um usuário, como se não houve nenhuma manipulação de erros.

O tryStatements contêm código onde pode ocorrer um erro, enquanto catchStatements contêm o código para manipular qualquer erro que ocorrem. Se ocorrer um erro na tryStatements, controle de programa é passado para catchStatements para processamento. O valor inicial de exceção é o valor do erro que ocorreu no tryStatements. Se nenhum erro ocorrer, catchStatements nunca são executados.

Se o erro não pode ser tratado na catchStatements associados a tryStatements onde ocorreu o erro, use o throw instrução para propagar, ou relançar o erro para um nível mais alto manipulador de erro.

Após todas as instruções em tryStatements foram executadas e qualquer manipulação de erro ocorreu no catchStatements, as instruções em finallyStatements incondicionalmente são executados.

Observe que o código dentro finallyStatements é executado mesmo se uma instrução return ocorre dentro do tente ou catch blocos, ou se um erro for lançado de uma catch bloco. Todos os finallyStatements são garantidas para executar a menos que ocorre um erro sem tratamento (por exemplo, causando um erro de tempo de execução dentro do catch bloco).

ObservaçãoObservação

Para evitar uma situação potencialmente confusa, não use um return instrução em uma Finalmente bloco. O código em um Finalmente bloco é executado após um return instrução em uma tente ou catch bloco é encontrado, mas antes que return instrução é executada. Nessa situação, um return instrução na Finalmente bloco é executado before inicial return a instrução, resultando em um valor de retorno diferente.

Exemplos

Descrição

O exemplo a seguir faz com que um erro a ser lançada e exibirá a mensagem de erro, código e nome.

Código

try
{
    var arr = new Array(-1);
}
catch(e)
{
    print ("Error Message: " + e.message);
    print ("Error Code: " + (e.number & 0xFFFF))
    print ("Error Name: " + e.name);
}

// Output:
//  Error Message: Array length must be zero or a positive integer
//  Error Code: 5029
//  Error Name: RangeError

Descrição

A exemplo a seguir mostra como JScript exception handling works.

Código

try
    {
    print("Outer try is running");
 
    try
        {
        print("Nested try is running");
        throw new Error(301, "an error");
        }
    catch(e)
        {
        print("Nested catch caught " + e.message);
        throw e;
        }
    finally
        {
        print("Nested finally is running");
        }   
    }
catch(e)
    {
    print("Outer catch caught " + e.message);
    }
finally
    {
    print("Outer finally is running");
    }

// Output:
//  Outer try is running
//  Nested try is running
//  Nested catch caught an error
//  Nested finally is running
//  Outer catch caught an error
//  Outer finally is running

Requisitos

Versão 5

Consulte também

Referência

throw, instrução

Objeto Error