我最近编写了一个运行良好的 PowerShell 脚本 - 然而,我现在想升级该脚本并添加一些错误检查/处理 - 但我似乎被第一个障碍难住了。为什么下面的代码不起作用?
try {
Remove-Item "C:\somenonexistentfolder\file.txt" -ErrorAction Stop
}
catch [System.Management.Automation.ItemNotFoundException] {
"item not found"
}
catch {
"any other undefined errors"
$error[0]
}
finally {
"Finished"
}
错误在第二个 catch block 中被捕获 - 您可以看到 $error[0]
的输出。显然我想在第一个 block 中捕获它。我错过了什么?
请您参考如下方法:
-ErrorAction Stop
正在为您改变一切。尝试添加这个并看看你会得到什么:
Catch [System.Management.Automation.ActionPreferenceStopException] {
"caught a StopExecution Exception"
$error[0]
}