我如何从Powershell中的catch块中重新抛出异常?

时间:2012-12-11 12:11:13

标签: exception powershell exception-handling

我应该以与.Net相同的方式处理异常处理吗?

然后,如何在Powershell中从catch块中重新抛出异常?

'throw'是enoungh还是'throw $ _'会更好?

1 个答案:

答案 0 :(得分:82)

PowerShell中的

throw关键字与.net实现的行为不同:在.net中,您只能抛出System.Exceptions本身或其后继者,但在PowerShell中,您可以抛出任何内容,并且会自动将其包含在内一个System.Management.Automation.RuntimeException。请参阅代码段here

如果您想重新抛出原始异常,可以使用throw(最常见),throw $_throw $_.Exception

ps:内部catch变量$_本身并不例外,但System.Management.Automation.ErrorRecord包含异常