Skip to main content
OnCommand Workflow Automation
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

오류 처리 지침

WFA(OnCommand Workflow Automation)용 PowerShell 또는 Perl 스크립트를 작성할 때 오류 처리에 대한 지침을 숙지해야 합니다.

PowerShell 오류 처리

지침

PowerShell 런타임에 의해 cmdlet에 추가된 일반적인 매개 변수에는 ErrorAction 및 WarningAction 같은 오류 처리 매개 변수가 포함됩니다.

  • ErrorAction 매개 변수는 cmdlet이 명령에서 발생하는 비종료 오류에 대응하는 방법을 결정합니다.

  • WarningAction 매개 변수는 cmdlet이 명령의 경고에 반응하는 방식을 결정합니다.

  • Stop, SilentlyContinue, Inquire 및 Continue 는 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",
    $@
);