Si durante la ejecución de un flujo de trabajo se produce un error, el sistema arroja una excepción. Si el flujo de trabajo no captura la excepción (o si el flujo de trabajo arroja una excepción que no se captura por otro medio), se produce un error en la ejecución del flujo de trabajo y se presenta al usuario la información relacionada con la excepción. Para manipular errores correctamente, se deben capturar y procesar las excepciones. Por ejemplo, en el ejemplo anterior, al intentar crear un recurso compartido en un proyecto inexistente, se produce una excepción no capturada.
Ejemplo 11 Manejo de errores de flujo de trabajoEste ejemplo se puede modificar para capturar el error y crear el proyecto en el caso de que no exista:
var workflow = { name: 'Create share', description: 'Creates a new share in a business unit', parameters: { name: { label: 'Name of new share', type: 'String' }, unit: { label: 'Business unit', type: 'ChooseOne', options: [ 'development', 'finance', 'qa', 'sales' ], optionlabels: [ 'Development', 'Finance', 'Quality Assurance', 'Sales/Administrative' ], } }, execute: function (params) { try { run('shares select ' + params.unit); } catch (err) { if (err.code != EAKSH_ENTITY_BADSELECT) throw (err); /* * We haven't yet created a project that corresponds to * this business unit; create it now. */ run('shares project ' + params.unit); run('commit'); run('shares select ' + params.unit); } run('filesystem ' + params.name); run('commit'); return ('Created new share "' + params.name + '"'); } };