Powershell错误处理:如果没有错误发生,请执行某些操作

Wal*_*r81 7 powershell try-catch

我一直在寻找这个,但似乎无法找到它.我有一个带有try {} catch {}语句的脚本.如果没有错误,我想添加一个动作.

例如

try { something }
catch { "Error occured" }
if (!error) {
"No Error Occured"
}
Run Code Online (Sandbox Code Playgroud)

如何在语句中没有发生错误的情况下测试?

提前致谢

沃尔特

CB.*_*CB. 18

$error清除后自动变量

$error.clear()
try { something }
catch { "Error occured" }
if (!$error) {
"No Error Occured"
}
Run Code Online (Sandbox Code Playgroud)


Sha*_*evy 5

其它的办法:

$ErrorOccured = $false

try 
{ 
   $ErrorActionPreference = 'Stop'
   ...something...
}
catch
{
   "Error occured"
   $ErrorOccured=$true
}

if(!$ErrorOccured) {"No Error Occured"}
Run Code Online (Sandbox Code Playgroud)

  • 如果您还想捕获非终止错误,请不要忘记在 try 块的头部设置 `$ErrorActionPreference = 'Stop'`。顺便说一句,这不会捕获从控制台执行程序返回的错误代码。 (2认同)

小智 5

关于什么,

something
If ($?)
{
    "No error"
}
Else
{
    "Error"
}
Run Code Online (Sandbox Code Playgroud)

这也适用于非终止错误。