2017年4月21日

【PowerShell】エラー処理(trapステートメント)


trapステートメントを用いることで、エラーが発生したときに何かメッセージなどの処理を行うことができます。

例1

基本となるtrap処理
$a = 5 / 0
Write-Host "答えは" $a

trap{
    Write-Host "エラーが発生しました。"
}

実行結果
エラーが発生しました。
0 で除算しようとしました。
発生場所 行:5 文字:1
+ $a = 5 / 0
+ ~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], RuntimeException
    + FullyQualifiedErrorId : RuntimeException
 
答えは 0
エラーが発生したあと、trapステートメントの処理が実行され後にエラーメッセージが表示され、その後次の処理が実行されます。


例2

breakを使ったtrap処理
$a = 5 / 0
Write-Host "答えは" $a

trap{
    Write-Host "エラーが発生しました。"
    break
}

実行結果
エラーが発生しました。
0 で除算しようとしました。
発生場所 行:3 文字:1
+ $a = 5 / 0
+ ~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : RuntimeException
 
breakを使うと、エラーが発生したあと、trapステートメントの処理が実行され後にエラーメッセージが表示され、その後の処理は実行されずにそのまま終了します。


例3

continueを使ったtrap処理
$a = 5 / 0
Write-Host "答えは" $a

trap{
    Write-Host "エラーが発生しました。"
    continue
}

実行結果
エラーが発生しました。
答えは 0
continueを使うと、エラーが発生したあと、trapステートメントの処理が実行され後にエラーメッセージは表示されず、その後次の処理が実行されます。



スポンサーリンク