PowerShell(四)异常处理

作为一门如此牛X闪闪的脚本语言,对异常的处理肯定有良好的支持。那么先看看下面的

Write-Host "1"
try
{
    $s = Get-Content D:\fdafaf.txt
    Write-Host "2"
}catch
{
    Write-Host "FailedItem:$_.Exception.ItemName"
    Write-Host "3"
    break
}
Write-host "4"

很标准的异常处理程序,如果D盘的fdafaf.txt不存在,会抛出异常
但是运行上面的内容,一个很是亮瞎你眼睛的结果出现了

1
Get-Content : 找不到路径“D:\fdafaf.txt”,因为该路径不存在。
所在位置 E:\workspace\Workspaces\PoweShell\wwx.ps1:27 字符: 10
+     $s = Get-Content D:\fdafaf.txt
+          ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (D:\fdafaf.txt:String) [Get-Content], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand

2
4

按照预期,应该是打印出1和3, 也是异常没有捕捉到,直接硬抛了出来。
好吧,我和你一样感觉到很诡异。经过再次查看资料,发现了-ErrorAction的选项
是的,没错,要在$s = Get-Content D:\fdafaf.txt后面加上-ErrorAction选项

    Write-Host "1"
    try
    {
        $s = Get-Content D:\fdafaf.txt -ErrorAction Stop
        Write-Host "2"
    }catch
    {
        Write-Host "FailedItem:$_.Exception.ItemName"
        Write-Host "3"
        break
    }

  Write-host "4"

再次运行,终于,程序执行的结果符合了预期
输出了牛X闪闪的

1
FailedItem:找不到路径“D:\fdafaf.txt”,因为该路径不存在。.Exception.ItemName
3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值