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",
$@
);
|