Skip to main content
OnCommand Workflow Automation 5.1
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Diretrizes para tratamento de erros

Colaboradores

Você deve estar ciente das diretrizes para manipulação de erros ao escrever um script PowerShell ou Perl para OnCommand Workflow Automation (WFA).

Manipulação de erros do PowerShell

Diretrizes Exemplo

Parâmetros comuns adicionados aos cmdlets pelo PowerShell runtime incluem parâmetros de manipulação de erros, como ErrorAction e WarningAction:

  • O parâmetro ErrorAction determina como um cmdlet deve reagir a um erro que não encerra o comando.

  • O parâmetro WarningAction determina como um cmdlet deve reagir a um aviso do comando.

  • Stop, SilentlyContinuar, inquirir e continuar são os valores válidos para os parâmetros ErrorAction e WarningAction.

Para obter mais informações, você pode usar o Get-Help about_CommonParameters comando na CLI do PowerShell.

ErrorAction: O exemplo a seguir mostra como lidar com um erro não-terminação como um erro de terminação:

New-NcIgroup-Name $IgroupName-Protocol $Protocol-Type$OSType-ErrorActionstop

WarningAction

New-VM-Name $VMName-VM $SourceVM-DataStore$DataStoreName-VMHost$VMHost-WarningActionSilentlyContinue

Use a instrução geral "try/catch" se o tipo da exceção recebida for desconhecido.

try
{
"In Try/catch block"
}
catch
{
"Got exception"
}

Use a instrução específica "try/catch" se o tipo da exceção recebida for conhecido.

try
{
"In Try/catch block"
}
catch[System.Net.WebExceptional], [System.IO.
IOException]
{
"Got exception"
}

Use a declaração "finalmente" para liberar recursos.

try
{
"In Try/catch block"
}
catch
{
"Got exception"
}
finally
{
"Release resources"
}

Use variáveis automáticas do PowerShell para acessar informações sobre exceções.

try
{
Get-WFALogger -Info -message $("Creating
Ipspace: " + $Ipspace)
New-NaNetIpspace-Name $Ipspace
}
catch
{
Throw "Failed to create Ipspace. Message:
" + $_.Exception.Message;
}

Manipulação de erros Perl

Diretrizes Exemplo

Perl não inclui suporte de linguagem nativa para blocos try/catch. Use blocos eval para verificar e lidar com erros. Mantenha os blocos eval o mais pequenos possível.

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