4

我很难在谷歌上找到一个明确的答案。例如throw 'temper tantrum'和之间是否有任何实际差异Write-Error 'temper tantrum' -ErrorAction Stop

它们都产生终止错误并设置 $? 为假。我可以看到 CategoryInfo 和 FullyQualifiedErrorId 存在差异。关键词是实用的。它们有什么不同的效果吗?在特定情况下是否有理由偏爱其中一种?

4

1 回答 1

9

throw产生一个终止错误,Write-Error没有-ErrorAction Stop将产生一个非终止错误。由于-ErrorAction Stop将非终止变为终止错误,因此两条指令基本相同。

不过也有区别。throw <expression>填充$error[0].TargetObject<expression>Write-Error <expression> -ErrorAction Stop没有。

于 2013-06-27T23:35:29.053 回答