2012-05-11 15 views
2

を誤解させています。powershell例外は、スクリプトが与えられたInvoiceInfo

$foo = @("bar") 

try { 
    $foo | ForEach-Object { 
     Join-Path $null $null 
    } 
} catch { 
    $_.InvocationInfo.Line 
} 

$foo | ForEach-Object { 

を出力しますが、私は例外が実際に上げたところ、私が取得できますか

Join-Path $null $null 

をご希望ですか?

答えて

4

これはあなたの実際の行を取得します:

$_.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 
} 
関連する問題