Directrices para la gestión de errores
Debe tener en cuenta las directrices para la gestión de errores al escribir un script PowerShell o Perl para OnCommand Workflow Automation (WFA).
Gestión de errores de PowerShell
Directrices | Ejemplo |
---|---|
Los parámetros comunes añadidos a los cmdlets de PowerShell Runtime incluyen parámetros de control de errores como ErrorAction y WarningAction:
Para obtener más información, puede utilizar la |
ErrorAction: El ejemplo siguiente muestra cómo manejar un error que no es de terminación como un error de terminación: New-NcIgroup-Name $IgroupName-Protocol $Protocol-Type$OSType-ErrorActionstop WarningAction New-VM-Name $VMName-VM $SourceVM-DataStore$DataStoreName-VMHost$VMHost-WarningActionSilentlyContinue |
Utilice la instrucción general "'try/catch'" si no se conoce el tipo de excepción entrante. |
try { "In Try/catch block" } catch { "Got exception" } |
Utilice la instrucción específica «'try/catch'» si conoce el tipo de excepción entrante. |
try { "In Try/catch block" } catch[System.Net.WebExceptional], [System.IO. IOException] { "Got exception" } |
Utilice la declaración «'finally'» para liberar recursos. |
try { "In Try/catch block" } catch { "Got exception" } finally { "Release resources" } |
Utilice variables automáticas de PowerShell para acceder a la información acerca de excepciones. |
try { Get-WFALogger -Info -message $("Creating Ipspace: " + $Ipspace) New-NaNetIpspace-Name $Ipspace } catch { Throw "Failed to create Ipspace. Message: " + $_.Exception.Message; } |
Gestión de errores Perl
Directrices | Ejemplo |
---|---|
Perl no incluye compatibilidad con el idioma nativo para bloques try/catch. Utilice bloques de evaluación para comprobar y manejar errores. Mantenga los bloques de evaluación lo más pequeños posible. |
eval { $wfa_util->sendLog('INFO', "Quiescing the relationship : $DestinationCluster://$DestinationVserver /$DestinationVolume" ); $server->snapmirror_quiesce( 'destination-vserver' => $DestinationVserver, 'destination-volume' => $DestinationVolume ); $wfa_util->sendLog('INFO', 'Quiesce operation started successfully.'); }; $wfa_util->checkEvalFailure( "Failed to quiesce the SnapMirror relationship $DestinationCluster://$DestinationVserver /$DestinationVolume", $@ ); |