创建并引发新异常


Answers:


194

要调用诸如FileNotFoundException之类的特定异常,请使用此格式

if (-not (Test-Path $file)) 
{
    throw [System.IO.FileNotFoundException] "$file not found."
}

要抛出一般异常,请使用throw命令和字符串。

throw "Error trying to do a task"

在捕获中使用时,您可以提供有关触发错误的其他信息


在C ++中,不建议抛出字符串,因为它们不在异常层次结构中。就像在Powershell中一样,它可以正常工作,但是也许它们不是最佳的选择吗?
劳尔·萨利纳斯-蒙塔古多

3
如果您在脚本中使用try..catches,并且有多个catch语句调用特定的异常,那么您当然要指定异常类型。我不确定为什么要引用C ++。在Powershell脚本中,throw语句最通常用于通过描述性消息退出脚本。我不想引起争论,但是Powershell和C ++是截然不同的动物。应该尝试将C ++或C#最佳实践应用于Powershell,因为脚本与函数式编程之间的联系更加紧密。
WiiBopp
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.