< Anterior | Siguiente >

Manejo de errores de Perl

En el código, puede utilizar la sentencia eval de Perl para manejar los errores.

Cuando las rutinas de la API de Rational ClearQuest encuentran condiciones inesperadas, lanzan una excepción. Si la excepción no se captura en el programa de llamada, el intérprete de lenguaje termina el programa. Si existe cualquier posibilidad de que la API de Rational ClearQuest falle, debe capturar y gestionar las excepciones.

Utilice los medios estándar de manejo de errores de Perl utilizando la sentencia Perl eval para analizar errores. Utilice la sintaxis siguiente:
eval {especifique las sentencias que desea supervisar}; 
En el tiempo de ejecución, si el motor Perl encuentra un error en una sentencia del bloque eval, omite el resto del bloque eval y establece $@ en el texto de error correspondiente. Por ejemplo:
eval{$objectName->MethodName();};
 if ($@) 
     { 
       print "Error using MethodName method. Error: $@\n"; 
     } 
else 
     {
      # continue without error ... 
     } 

Varias funciones que se espera que habitualmente fallen son excepciones de esto. En concreto, valide y establezca indicaciones de error de retorno de funciones de campo, en lugar de lanzar excepciones. Para obtener más información, consulte el apartado Comprobación y validación de errores.

comprobación de errores

Para la mayoría de los métodos y las propiedades de la API de Rational ClearQuest, debe comprobar el valor de retorno a fin de validar si la llamada devuelve un error o no.

Para llamadas a funciones que devuelven un objeto, necesita comprobar la condición si el objeto especificado no existe. Por ejemplo, si llama al método Item de un objeto de recopilación, si el objeto que especifica no está en la recopilación, el valor de retorno es un objeto no definido para Perl: Puede utilizar
if (!defined($result)) { ... };
para detectar esta condición.

Para llamadas a funciones que tienen un valor de retorno String de error, si no existe ningún error el valor está vacío, o bien, se devuelve un String que contiene la descripción del error. Puede comprobar el resultado de la llamada al método y, si el valor no está vacío, puede recuperar el error en una variable, como un valor String.

Por ejemplo, el objeto Entity del método SetFieldValue se define al devolver un valor String. Devuelve un String vacío si se permiten cambios en el campo y la operación es satisfactoria; en cambio, si la operación falla, este método devuelve un String que contiene una explicación del error.

Si se especifica un campo incorrecto, se devuelve un error. Por ejemplo:
El defecto SAMPL00000123 no tiene ningún campo llamado "Invalid_field". 
También debe escribir código para manejar posibles anomalías de excepciones. Bloquee las excepciones por medio de la ejecución de métodos de API en una sentencia eval{}. Por ejemplo,
# 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 | Siguiente >

Comentarios