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

오류 처리 지침

기여자

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