概要
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 コマンドレットが例外を発生させたためです。

コメント