Go to main content
Guide d'administration des systèmes Oracle® ZFS Storage Appliance, version OS8.6.x

Quitter la vue de l'impression

Mis à jour : Septembre 2016
 
 

Présentation des erreurs de script CLI

Lorsque le système génère une erreur, une exception est levée. L'exception est généralement un objet qui contient les membres suivants :

  • code : code numérique associé à l'erreur

  • message : message lisible à l'oeil associé à l'erreur

Les exceptions peuvent être interceptées et gérées, ou elles peuvent être levées hors de l'environnement de script. Si un environnement présente une exception non interceptée, la CLI affiche les informations détaillées à ce sujet. Par exemple :

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")

Pour voir de plus amples informations sur l'exception, vous pouvez l'intercepter et la vider :

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")'
}

Ceci vous permet également de mettre en oeuvre une gestion explicite des erreurs, par exemple :

#!/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 ce script est nommé "share.ksh" et exécuté avec un nom de partage incorrect, un message d'erreur explicite est généré :

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