Linee guida per la gestione degli errori
È necessario conoscere le linee guida per la gestione degli errori durante la scrittura di uno script PowerShell o Perl per OnCommand Workflow Automation (Wfa).
Gestione degli errori PowerShell
Linee guida | Esempio |
---|---|
I parametri comuni aggiunti ai cmdlet dal runtime di PowerShell includono parametri di gestione degli errori come ErrorAction e WarningAction:
Per ulteriori informazioni, è possibile utilizzare |
ErrorAction: L'esempio seguente mostra come gestire un errore senza terminazione come errore finale: WarningAction |
Utilizzare l'istruzione generale “try/catch” se il tipo di eccezione in entrata non è noto. |
try { "In Try/catch block" } catch { "Got exception" } |
Se si conosce il tipo di eccezione in entrata, utilizzare l'istruzione “Try/catch” specifica. |
try { "In Try/catch block" } catch[System.Net.WebExceptional], [System.IO. IOException] { "Got exception" } |
Utilizzare l'istruzione “finally” per rilasciare le risorse. |
try { "In Try/catch block" } catch { "Got exception" } finally { "Release resources" } |
Utilizzare le variabili automatiche di PowerShell per accedere alle informazioni sulle eccezioni. |
try { Get-WFALogger -Info -message $("Creating Ipspace: " + $Ipspace) New-NaNetIpspace-Name $Ipspace } catch { Throw "Failed to create Ipspace. Message: " + $_.Exception.Message; } |
Gestione degli errori Perl
Linee guida | Esempio |
---|---|
Perl non include il supporto della lingua nativa per i blocchi try/catch. Utilizzare i blocchi di valutazione per il controllo e la gestione degli errori. Mantieni i blocchi di valutazione il più piccolo possibile. |
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", $@ ); |