##try-catchで置き換える
以下のような、VBSでよく見るエラーが発生しても処理続行の形式は、
' エラー発生でも処理続行
On Error Resume Next
・・・
(処理A)
・・・
' 正常であれば「0」、それ以外はエラー
If Err.Number <> 0 Then
・・・
(処理B)
・・・
End If
Powershellに変換する場合、JavaやC++のように例外処理のtry-catch構文で置き換えることができる。
# 例外が発生したら処理を終了
$ErrorActionPreference="Stop"
try {
# 例外が発生する可能性のある処理
・・・
(処理A)
・・・
} catch {
# 例外が発生したときに行う処理
・・・
(処理B)
・・・
} finally {
# 例外が発生してもしなくても行う処理
# finally {・・・}は必要なければ省略可能
・・・
}
##ContinueとStopの違いに注意
なお、上記の「Stop」は、デフォルトは「例外が発生しても処理を続行」の「Continue」であるが、これは通常は使用しない。
なぜなら、「Continue」を指定した場合は、スクリプトの実行において致命的な例外が発生した時しかcatchできないが、「例外が発生したら処理終了」の「Stop」を指定した場合、何か例外が発生するとcatch {・・・}の処理が実行されるので、そうする方が無難なため。
・参考にさせていただいたページ
PowerShell例外処理
[http://capm-network.com/?tag=PowerShell%E4%BE%8B%E5%A4%96%E5%87%A6%E7%90%86]