强制让PowerShell生成终止性错误

上一篇我们说到了在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 trapped
ScriptHalted
At line:9 char:5
+     throw
+     ~~~~~
    + CategoryInfo          : OperationStopped: (:) [], RuntimeException
    + FullyQualifiedErrorId : ScriptHalted


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值