3
두 개의 Powershell 스크립트가 있습니다. main.ps1 및 sub.ps1. main.ps1이 sub.ps1을 호출합니다. 경우에 따라 sub.ps1이 예외를 throw합니다. main.ps1에서 sub.ps1에 의해 던진 예외를 잡는 것이 가능합니까?다른 Powershell 스크립트에서 throw 된 예외를 잡는 방법은 무엇입니까?
예 main.ps1 :
try{. .\sub.ps1;}
catch
{}
finally
{}
예 sub.ps1 :
try {
sub.ps1
}
catch {
Write-Warning "Caught: $_"
}
finally {
Write-Host "Done"
}
사용 help about_Try_Catch_Finally
자세한 내용은 다음과 같습니다
throw new-object System.ApplicationException "I am an exception";
답변 해 주셔서 감사하지만 문제가 해결되지 않았습니다. 점 소싱을 사용하여 스크립트를 호출합니다. 문제가 될 수 있습니까? –
점 소싱 여부에 따라 작동합니다. 문제는 다른 곳에서 발생합니다. 더 많은 정보가 도움이 될 수 있습니다. 어떤 오류가 발생합니까? –
sub.ps1이 * exception *을 던지고 * 오류 *를 쓰지 않는 것이 확실합니까? sub.ps1을 호출하기 전에이'$ ErrorActionPreference = 'stop''을 시도하십시오. –