[英]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.