function Test($cmd)
{
Try
{
Invoke-Expression $cmd -ErrorAction Stop
}
Catch
{
Write-Host "Inside catch"
}
Write-Host "Outside catch"
}
$cmd = "vgc-monitors.exe" #Invalid EXE
Test $cmd
$cmd = "Get-Content `"C:\Users\Administrator\Desktop\PS\lib\11.txt`""
Test $cmd
#
$cmd = "vgc-monitors.exe" で Test() を初めて呼び出します (この exe はシステムに存在しません)。
*例外は正常にキャッチされました
※テキスト「インサイドキャッチ」「アウトサイドキャッチ」を印字
#
Test() を 2 回目に呼び出し$cmd = "Get-Content "C:\Users\Administrator\Desktop\PS\lib\11.txt""
ます (11.txt は指定されたパスに存在しません)。
*例外はキャッチされません
※「インサイドキャッチ」の文字は印刷されていません」
※以下のエラーメッセージが表示されます
Get-Content : Cannot find path 'C:\Users\Administrator\Desktop\PS\lib\11.txt' because it does not exist.
At line:1 char:12
+ Get-Content <<<< "C:\Users\Administrator\Desktop\PS\lib\11.txt"
+ CategoryInfo : ObjectNotFound: (C:\Users\Admini...p\PS\lib\11.txt:String) [Get-Content], ItemNotFoundEx
ception
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand
質問:
2番目の例外をキャッチしたい。コードのエラーを特定できません。
ありがとう
じゅがり