繁体   English   中英

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

[英]How can I rethrow an exception from catch block in PowerShell?

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

那么,如何从 PowerShell 中的 catch 块重新抛出异常?

throw就够了吗? 还是throw $_会更好?

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

ps:内部catch变量$_本身不是异常,而是包含异常的System.Management.Automation.ErrorRecord


笔记

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM