< Anterior | Próximo >

Manipulação de erros de Perl

É possível usar a instrução eval de Perl no seu código para manipular erros.

Quando rotinas na API do Rational ClearQuest encontram condições inesperadas, elas liberam uma exceção. Se a exceção não for capturada pelo programa de chamada, o interpretador da linguagem termina o programa. Se existir qualquer possibilidade da chamada da API do Rational ClearQuestational falhar, você deve capturar e tratar as exceções.

Use os meios padrão de manipulação de erros de Perl usando a instrução eval para analisar os erros. Use a sintaxe seguinte:
eval {inserir instruções
desejadas no monitor}; 
No tempo de execução, se o mecanismo de Perl encontra um erro em uma instrução no bloco eval, ele ignora o resto do bloco eval e configura $@ para o texto de erro correspondente. Exemplo:
eval{$objectName->MethodName();};
 if ($@)
     { 
       print "Error using MethodName method. Error: $@\n";
     } 
else
     {
      # continue without error ...
     } 

Várias funções que se esperava que falhassem comumente são exceções disso. Em particular, validar e configurar funções de campo retorna indicações de erro em vez de lançamentos de exceções. Para obter mais informações, consulte Verificação de erros e validação.

Verificação de erros

Para vários métodos e propriedades da API do Rational ClearQuest, verifique o valor de retorno para validar se a chamada retorna ou não um erro.

Para chamadas das funções que retornam um objeto, é necessário verificar a condição se o objeto especificado não existir. Por exemplo, você chama o método Item de um objeto de coleta, se o objeto especificado não estiver na coleta, o valor de retorno é um objeto indefinido para Perl. Você pode usar
if (!defined($result)) { ... };
para detectar essa condição.

Para chamadas de funções que têm um valor de retorno de Cadeia de erro, o valor está vazio e não há erro ou uma Cadeia que contém a descrição do erro. Você pode verificar o resultado chamado o método e se o valor não estiver vazio você pode recuperar o erro em uma variável, como um valor de Cadeia.

Por exemplo, o método SetFieldValue do objeto Entity é definido como retornando um valor de Cadeia. Ele retorna uma Cadeia vazia se alterações no campo são permitidas e a operação obtém sucesso, do contrário, se a operação falha, esse método retorna uma Cadeia que contém uma explicação do erro.

Se um campo incorreto for especificado, um erro é retornado. Exemplo:
O Defeito SAMPL00000123 não tem um campo de nome "Invalid_field". 
Você deve também escrever o código para tratar de falhas de exceção em potencial. Exceções de trap pela execução de métodos da API dentro de uma instrução eval{}. Exemplo:
# trap exceptions and
error message strings
# ... 
eval { $RetVal = ${$CQEntity}->Validate(); };
# EXCEPTION information is in $@
# RetVal is either an empty string or contains a failure message string
if ($@){
        print "Exception: '$@’\n";
        # other exception handling goes here...
        } 
if ($RetVal eq ""){
        # success...
        } 
else {
        # failure...
        # return the message string here...
        }
< Anterior | Próximo >

Feedback