[PowerShell 関数の基礎] 例外処理を組み込むには?

概要

PowerShell 関数には、エラー処理のための例外処理機能があります。例外処理は、エラーが発生した場合に実行される特別なコードブロックを定義し、スクリプトの継続的な実行を可能にするためのものです。この記事では、PowerShell 関数の例外処理とエラーハンドリングについて学びます。

構文

try { 
  # 例外が発生する可能性のあるコード 
} 
catch { 
  # 例外が発生した場合に実行するコード 
} 
finally { 
  # 例外の発生に関係なく必ず実行するコード 
}
  • try ブロック:例外が発生する可能性があるコードを記述するブロックです。
  • catch ブロック:try ブロック内で例外が発生した場合に実行するブロックです。ここには、例外の詳細情報を表示するコードなどが記述されます。
  • finally ブロック:例外が発生した場合でも必ず実行されるブロックです。例外の発生に関係なく必要な後処理がある場合に使用されます。

使用例

以下の例では、Get-Content コマンドレットを使用して、ファイルからテキストを読み込むための関数を定義します。ファイルが存在しない場合には、例外を発生させて、エラーメッセージを表示します。

function Read-TextFromFile {
  param( [string]$FilePath ) 
  try { 
    $content = Get-Content -Path $FilePath -ErrorAction Stop 
    Write-Output $content 
  }
  catch { 
    Write-Error "読み込み失敗: $($error[0].Exception.Message)" 
  } 
}

上記の関数を使用するには、次のように呼び出します。

 Read-TextFromFile -FilePath "C:\temp\notexist.txt"

上記のコマンドは、エラーメッセージ「読み込み失敗: パス ‘C:\temp\notexist.txt’ が存在しないため検出できません。」を表示します。これは、指定されたファイルが存在しないため、Get-Content コマンドレットが例外を発生させたためです。

コメント

タイトルとURLをコピーしました