强制让PowerShell生成终止性错误

来源:互联网 发布:网络歌曲视频下载 编辑:程序博客网 时间:2024/05/16 18:10

上一篇我们说到了在PowerShell中用Trap来处理终止性错误,但是我们知道并不是所有的PowerShell命令都可以生成终止形错误的,今天我们就要来说说如何让PowerShell在必要的时候生成终止性错误。

我们要生成终止性错误,这里就需要throw关键字来帮助我们,因为Throw 关键字会导致终止错误。你可以使用 Throw 关键字停止处理命令、函数或脚本。


如下的小例子中,由于我们的环境中是正确存在'C:\XMLSample\New Text Document.txt' 文件路径的,所以运行该脚本并不会报错。

function Test-Error{    trap [System.Exception]     {        "An error trapped"    }    Get-Content -Path 'C:\XMLSample\New Text Document.txt'    }Test-Error

可是问题就是当我们因为某种环境需要,而必须让他生成终止性错误呢,这里就用到我们之前所说的throw关键字了,我们可以把需要我们触发生成的错误写入throw语句块内,即使它原本并不会报错,看看如下例子:

function Test-Error{    trap [System.Exception]     {        "An error trapped"    }    throw    {        Get-Content -Path 'C:\XMLSample\New Text Document.txt'    }}Test-Error


当我们运行的时候你会看到,throw抛出了终止性的异常,因为是终止性的错误,作为用来处理终止性错误的Trap关键字语句块也被触发了,你会看到触发了Trap语句块里的语句输出。

An error trappedScriptHaltedAt line:9 char:5+     throw+     ~~~~~    + CategoryInfo          : OperationStopped: (:) [], RuntimeException    + FullyQualifiedErrorId : ScriptHalted


0 0
原创粉丝点击