2012-11-28 2 views
2

PSCmdlet에서 파생 된 사용자 지정 powershell 명령이 있는데 오류가 발생하면 자체 오류 메시지를 제공하려고합니다.C# powershell ErrorDetail usage

같은 자세한 교체 오류 메시지로, 오류 레코드에 대한 추가 오류 정보를 제공합니다 : ErrorRecord에 MSDN ErrorDetails 때에 프로퍼티에 따라하는 것으로한다. 나는이 작업을 얻을 수 없습니다 나는 어떻게 이제까지

, 나는 내가 ID InvalidOrNoSite 내 사용자 지정 오류 메시지를 저장 한이에, DisplayStrings.resx을 가지고 있지만, 나는 다음과 같은 코드를 실행하면 예전 스타일의 오류를 보여줍니다 내 사용자 지정 오류가 아닙니다.

ErrorRecord err = new ErrorRecord(new ArgumentException(), "", ErrorCategory.InvalidArgument, this); 
err.ErrorDetails = new ErrorDetails(this, "Resources.DisplayStrings.ResourceManager", "InvalidOrNoSite", null); 
ThrowTerminatingError(err); 

ErrorDetails를 사용하는 방법에 대한 예제가 있습니까?

답변

0

사용자 정의 당신이 non-terminating error에서 오류를 변경하는 경우 ErrorDetail 작품의.

이 동작은 Microsoft 설명서 [또는 적어도 내가 찾지 못했음]에서 설명하지 않습니다.]하지만 몇 년 전에 구입 한 책에서 (Wrox - Professional Windows PowerShell Programming - February 2008) 페이지 97은 terminating error에서 작동하지 않는다고보고되었습니다.

내 해결 방법은 일부 또는 전부를 다음 코드를 수행이 변수 catch에서 테스트 후 true'플래그' 변수를 설정하고 수행하거나하지 않는 것입니다.