programing

PowerShell에서 오류의 줄 번호를 가져오는 방법

magicmemo 2023. 8. 29. 20:19
반응형

PowerShell에서 오류의 줄 번호를 가져오는 방법

PowerShell 스크립트를 실행할 때 발생하는 오류의 라인 번호를 확인하려고 합니다.현재 사용하고 있는 것은 다음과 같습니다.

$e = $_.Exception
$line = $_.Exception.InvocationInfo.ScriptLineNumber
$msg = $e.Message 

Write-Host -ForegroundColor Red "caught exception: $e at $line"

때로는 이것이 효과가 있고 때로는 그렇지 않습니다.제가 잘못하고 있는 것이 있는지, 아니면 이 일을 더 일관되게 하기 위해 무엇을 할 수 있는지 궁금합니다.

문제가 무엇인지 파악했습니다.

다음 대신:

$e = $_.Exception
#this is wrong
$line = $_.Exception.InvocationInfo.ScriptLineNumber
$msg = $e.Message 

Write-Host -ForegroundColor Red "caught exception: $e at $line"

그럴 것 같네요.

$e = $_.Exception
$line = $_.InvocationInfo.ScriptLineNumber
$msg = $e.Message 

Write-Host -ForegroundColor Red "caught exception: $e at $line"

자세한 예외를 캡처할 수 있는 또 다른 유용한 방법이 있습니다.

try
{
    throw "fdsfds"
}
catch
{
    Write-Error ($_.Exception | Format-List -Force | Out-String) -ErrorAction Continue
    Write-Error ($_.InvocationInfo | Format-List -Force | Out-String) -ErrorAction Continue
    throw
}

언급URL : https://stackoverflow.com/questions/17226718/how-to-get-the-line-number-of-error-in-powershell

반응형