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çã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