Go to main content
Guía de administración de Oracle® ZFS Storage Appliance, versión OS8.7.0

Salir de la Vista de impresión

Actualización: Marzo de 2017
 
 

Descripción de errores de secuencias de comandos de la CLI

Cuando se genera un error, el sistema arroja una excepción. Por lo general, la excepción es un objeto que contiene los siguientes miembros:

  • code: código numérico asociado con el error.

  • message: mensaje asociado con el error legible para el ojo humano.

Las excepciones se pueden capturar y resolver, o se las puede quitar del entorno de secuencia de comandos. Si un entorno de secuencia de comandos tiene una excepción no capturada, los detalles aparecen en la CLI. Por ejemplo:

dory:> script run('not a cmd')
error: uncaught error exception (code EAKSH_BADCMD) in script: invalid command
       "not a cmd" (encountered while attempting to run command "not a cmd")

Para ver más detalles sobre la excepción, puede capturarla y volcarla:

dory:> script try { run('not a cmd') } catch (err) { dump(err); }
{
   toString: <function>,
   code: 10004,
   message: 'invalid command "not a cmd" (encountered while attempting to
                      run command "not a cmd")'
}

Esto también le permite un tratamiento enriquecido de los errores, por ejemplo:

#!/usr/bin/ksh -p

ssh -T root@dory <<EOF
script
       try {
               run('shares select default select $1');
       } catch (err) {
               if (err.code == EAKSH_ENTITY_BADSELECT) {
                       printf('error: "$1" is not a share in the ' +
                           'default project\n');
                       exit(1);
               }

               throw (err);
       }

       printf('"default/$1": compression is %s\n', get('compression'));
       exit(0);
EOF

Si esta secuencia de comandos se llama "share.ksh" y se ejecuta con un nombre de recurso compartido no válido, se genera un mensaje de error enriquecido:

% ksh ./share.ksh bogus
error: "bogus" is not a share in the default project