exception - 简单的 Try/catch 不起作用

标签 exception powershell powershell-2.0 powershell-3.0

这是我的代码,非常简单:

$TargetFolder = 'M:\'

try{

$Getfolderlist = Get-ChildItem $TargetFolder -Recurse | ? { $_.PSIsContainer -and $_.Name -eq 'old' }

}catch {

Write-Host "Error ! :) "    

}

它不起作用,我收到一个 powershell 异常:

Get-ChildItem : Cannot find drive. A drive with the name 'M' does not exist.
At C:\ef-scripts\PurgeDeliveryZip\purge_delivery_zip.ps1:23 char:18
+ $Getfolderlist = Get-ChildItem $TargetFolder -Recurse | ? { $_.PSIsContainer -an ...
+                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (M:String) [Get-ChildItem], DriveNotFoundException
    + FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

感谢您的帮助。

最佳答案

您需要将 -ErrorAction 设置为 Stop。这样catch block 就得到了异常。在这里阅读有关 try catch 用法的信息:http://technet.microsoft.com/en-us/library/hh847793.aspx

此外,您可能想阅读有关 PowerShell 和 ErrorAction 中的终止错误的信息。通用参数有帮助。

$TargetFolder = 'M:\'

try{
$Getfolderlist = Get-ChildItem $TargetFolder -Recurse -Ea Stop | ? { $_.PSIsContainer -and $_.Name -eq 'old' }
}
catch {
Write-Host "Error ! :) "    
}

关于exception - 简单的 Try/catch 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18081117/

相关文章:

powershell - 错误 : Description = Invalid query

python - NotAllowedError create_login_url

ios - 在制作自定义 UIButton 时,以 NSException 类型的未捕获异常终止

Java - 将文件中的整数相加

forms - 如何使用 pwsh 中的新 param -form 登录网站

function - powershell 中 "x"秒后停止函数

.net - WindowsFormsHost 控件 - 异常处理

Azure PowerShell 从容器下载 blob 内容

Powershell 2.0 最大参数数

powershell - 复制时拒绝访问