错误报告概念

Windows PowerShell 提供了两种报告错误的机制:一种用于 终止错误的机制,另一种机制用于 非终止错误。 cmdlet 正确报告错误非常重要,以便运行 cmdlet 的主机应用程序可以适当地做出反应。

当发生错误(不允许 cmdlet 继续处理其输入对象)时,cmdlet 应调用 System.Management.Automation.Cmdlet.ThrowTerminatingError* 方法。 当 cmdlet 可以继续处理输入对象时,cmdlet 应调用 System.Management.Automation.Cmdlet.WriteError 方法来报告非终止错误。 这两种方法都提供了主机应用程序可用于调查错误原因的错误记录。

使用以下准则来确定错误是终止错误还是非终止错误。

  • 如果错误阻止 cmdlet 继续处理当前对象或成功处理任何进一步的输入对象(无论其内容如何),则错误是终止错误。

  • 如果不希望 cmdlet 继续处理当前对象或任何进一步的输入对象(无论其内容如何),则错误是终止错误。

  • 如果错误发生在不接受或返回对象的 cmdlet 中,或者在接受或仅返回一个对象的 cmdlet 中发生,则错误是终止错误。

  • 如果希望 cmdlet 继续处理当前对象和任何进一步的输入对象,则错误是非终止错误。

  • 如果错误与特定输入对象或输入对象的子集相关,则错误是非终止错误。

另请参阅

System.Management.Automation.Cmdlet.ThrowTerminatingError*

System.Management.Automation.Cmdlet.WriteError

Windows PowerShell 错误记录

编写 Windows PowerShell Cmdlet