Ret*_*o69 4 powershell powershell-3.0
我有以下代码,我认为这将允许我捕获错误而不是生成错误写出"发生错误".
不幸的是,它仍然显示错误"无法重新启动计算机:访问被拒绝".
我知道为什么会发生这种情况,但我希望能够捕获错误并重新格式化.我究竟做错了什么?
try {
Restart-Computer -ComputerName MFG-KY-PC74 -Force
} catch {
Write-Host "An Error Occurred"
}
Run Code Online (Sandbox Code Playgroud)
Ans*_*ers 11
在PowerShell中,存在终止和非终止错误.前者终止脚本执行(如果没有捕获)并且可以被捕获try..catch,后者不会终止脚本执行(所以没有什么可以捕获的).您收到的错误是非终止错误,因此您需要通过附加-ErrorAction Stop到语句来使其成为终止错误:
try {
Restart-Computer -ComputerName MFG-KY-PC74 -Force -ErrorAction Stop
} catch {
write-host "An Error Occurred"
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以设置$ErrorActionPreference = "Stop"是否希望所有错误都成为终止错误.
有关更多信息,请参阅Scripting Guy博客上的这篇文章.
| 归档时间: |
|
| 查看次数: |
1090 次 |
| 最近记录: |