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.
eval {inserir instruções desejadas no monitor};
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.
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.
O Defeito SAMPL00000123 não tem um campo de nome "Invalid_field".
# 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... }