スクリプトを指定します。
$foo = @("bar")
try {
$foo | ForEach-Object {
Join-Path $null $null
}
} catch {
$_.InvocationInfo.Line
}
印刷します
$foo | ForEach-Object {
しかし、私はしたいです
Join-Path $null $null
例外が実際に発生した場所を取得するにはどうすればよいですか?
スクリプトを指定します。
$foo = @("bar")
try {
$foo | ForEach-Object {
Join-Path $null $null
}
} catch {
$_.InvocationInfo.Line
}
印刷します
$foo | ForEach-Object {
しかし、私はしたいです
Join-Path $null $null
例外が実際に発生した場所を取得するにはどうすればよいですか?
これにより、実際の行が得られます。
$_.Exception.CommandInvocation.Line
および例外メッセージ:
$_.Exception.Message
および行番号:
$_.Exception.Line
およびオフセット (列):
$_.Exception.Offset
したがって、役立つ小さなメッセージを作成できます。
} catch {
$msg = "Failed to do something. Failed on line number '{0}' column '{1}' ('{2}'). The error was '{3}'." -f
$_.Exception.Line, $_.Exception.Offset, $_.Exception.CommandInvocation.Line.Trim(), $_.Exception.Message
Write-Error $msg
}