错误报告概念

Windows PowerShell提供了两种报告错误的机制:一种机制用于终止 错误,另一种机制用于 非终止错误。 cmdlet 必须正确报告错误,以便运行 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