2

我有一个自定义的 powershell 命令衍生自PSCmdlet错误,我想提供自己的错误消息。根据 MSDNErrorDetails属性,ErrorRecord这样做:

为错误记录提供附加错误信息,例如更详细的替换错误消息。

我怎么无法让它工作,我有DisplayStrings.resx,我已经用 ID 存储了我的自定义错误消息InvalidOrNoSite,但是当我执行以下代码时,它显示相同的旧样式错误,而不是我的自定义错误。

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

有关如何使用 ErrorDetails 的任何示例?

4

1 回答 1

0

如果ErrorDetail更改. _non-terminating error

微软文档中没有解释这种行为[或者至少我没有找到它:)],但在我一年前买的一本书(Wrox - Professional Windows PowerShell Programming - February 2008)第 97 页报告terminating error说不行。

我的解决方法是在测试此变量后设置一个“标志”变量,true然后catch执行或不执行部分或全部以下代码。

于 2012-11-28T13:52:56.503 回答