Skip to main content
OnCommand Workflow Automation 5.0
本产品推出了新版本。
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

错误处理准则

贡献者

您必须了解为 OnCommand Workflow Automation ( WFA )编写 PowerShell 或 Perl 脚本时的错误处理准则。

PowerShell 错误处理

准则 示例

PowerShell 运行时添加到 cmdlet 的常见参数包括错误处理参数,例如 ErrorAction 和 WarningAction :

  • ErrorAction 参数用于确定 cmdlet 应如何对命令中的非终止错误做出响应。

  • WarningAction 参数用于确定 cmdlet 应如何对命令发出的警告做出响应。

  • "ErrorAction" 和 "WarningAction" 参数的有效值为 "stop" , "SilentlyContinuu" , "INquire " 和 "Continu继续 " 。

有关详细信息,您可以在 PowerShell CLI 中使用 Get-Help About _CommonParameters 命令。

ErrorAction :以下示例显示了如何将非终止错误作为终止错误进行处理:

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

WarningAction

New-VM-Name $VMName-VM $SourceVM-datastoreName-VMHost$VMHost-WarningActionSilentlyContinue

如果传入异常的类型未知,请使用常规 "`try/catch` " 语句。

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

如果已知传入异常的类型,请使用特定的 "`try/catch` " 语句。

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

使用 "`finally` " 语句释放资源。

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

使用 PowerShell 自动变量访问有关异常的信息。

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

Perl 错误处理

准则 示例

Perl 不支持 try/catch 块的原生 语言。使用评估块检查和处理错误。请尽可能小地保留评估块。

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