PowerShellコマンドレット虎の巻
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変数にキーワードを設定することで、例外発生時の動きを指定できます。

【$ErrorActionPreferenceのキーワード】
キーワード説明
"Continue"エラーを表示して処理を継続する
(デフォルト)
"Stop"エラーで処理を停止し、例外をスローする
"SilentlyContinue"エラーを表示せずに処理を継続する

例)エラー時に処理を停止して例外をスローする

$ErrorActionPreference = "Stop"

意図的に例外を発生させる

throw句を使うと意図的に例外を発生させることができます。

例)意図的に例外を発生させる

throw "カスタムエラーメッセージ"

備考

  • PowerShellのエラーには終了エラーと非終了エラーの2種類があります。
    ・終了エラー:エラー発生時は処理を停止し、catchブロックにキャッチさる。
    ・非終了エラー:エラー発生時も処理は停止せず、catchブロックにもキャッチされない。
  • 非終了エラーをキャッチしたい場合は、-ErrorAction Stopパラメータを使用するか、$ErrorActionPreferenceを"Stop"に設定してください。

関連項目