오류 처리 지침
WFA(OnCommand Workflow Automation)용 PowerShell 또는 Perl 스크립트를 작성할 때 오류 처리에 대한 지침을 숙지해야 합니다.
PowerShell 오류 처리
지침 | 예 |
---|---|
PowerShell 런타임에 의해 cmdlet에 추가된 일반적인 매개 변수에는 ErrorAction 및 WarningAction 같은 오류 처리 매개 변수가 포함됩니다.
자세한 내용은 PowerShell CLI에서 'Get-Help About_CommonParameters' 명령을 사용할 수 있습니다. |
ErrorAction: 다음 예제에서는 비종료 오류를 종료 오류로 처리하는 방법을 보여 줍니다. New-NcIgroup-Name $IgroupName-Protocol $Protocol-Type$OSType-ErrorActionstop 경고 조치 New-VM-Name $VMName-VM $SourceVM-DataStore$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 블록을 사용하여 오류를 검사하고 처리합니다. 평가 블록을 가능한 한 작게 유지합니다. |
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", $@ ); |