2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VBSからPowerShellへ (2)エラー処理(例外処理)

Last updated at Posted at 2019-05-11

##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]

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?