Skip to main content
 首页 » 编程设计

PowerShell 尝试/捕获/最后

2024年06月03日45oomusou

我最近编写了一个运行良好的 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] 
}