HOME > PowerShell構文 > 例外処理
例外処理
PowerShellの例外処理についてです。
解説
PowerShellでは例外処理を行うことができます。
書き方はC#やJavaなど他の言語と同様に、try~catch~finallyを使用します。
構文
- (構文)
- try { # 例外が発生する可能性のあるコード } catch { # 例外処理 } finally { # 必ず実行される処理 }
例)例外をキャッチする
try {
# コード
} catch [System.IO.FileNotFoundException] {
# ファイルが見つからない場合の処理
Write-Host "エラー: $($_.Exception.Message)"
} catch [System.IO.IOException] {
# その他のIO例外の処理
Write-Host "エラー: $($_.Exception.Message)"
}
例外発生時の動作の設定
$ErrorActionPreference変数にキーワードを設定することで、例外発生時の動きを指定できます。
キーワード | 説明 |
---|---|
"Continue" | エラーを表示して処理を継続する (デフォルト) |
"Stop" | エラーで処理を停止し、例外をスローする |
"SilentlyContinue" | エラーを表示せずに処理を継続する |
例)エラー時に処理を停止して例外をスローする
$ErrorActionPreference = "Stop"
意図的に例外を発生させる
throw句を使うと意図的に例外を発生させることができます。
例)意図的に例外を発生させる
throw "カスタムエラーメッセージ"
備考
- PowerShellのエラーには終了エラーと非終了エラーの2種類があります。
・終了エラー:エラー発生時は処理を停止し、catchブロックにキャッチさる。
・非終了エラー:エラー発生時も処理は停止せず、catchブロックにもキャッチされない。 - 非終了エラーをキャッチしたい場合は、-ErrorAction Stopパラメータを使用するか、$ErrorActionPreferenceを"Stop"に設定してください。