Powershell尝试捕获

时间:2013-04-04 11:17:54

标签: powershell

我在下面有一个简单的PowerShell脚本,它基本上执行带有少量参数的abc.exe(控制台应用程序)。

& abc.exe ar1 ar2

abc.exe文件是.net所以它有自己的异常处理程序。

每当abc.exe抛出异常时,我希望Powershellscript捕获并记录/回显。

有人可以帮助我如何实现上述目标。

1 个答案:

答案 0 :(得分:6)

没有

abc.exe中的异常将冒泡到main方法,而不再是。但是你可以通过查看 $ LASTEXITCODE 来检查abc.exe的ERRORLEVEL。 (检查this

你应该做什么:

  • 你的abc.exe和任何exe一样,如果一切正常,应返回errorlevel 0,如果出现错误则返回其他数字
  • Abc.exe主方法可以在出现问题时写入错误消息。这样,当您从PowerShell脚本调用它时,您将在控制台中看到错误消息,稍后您的脚本将检查errorlevel。

此外,您还可以在abc.exe中为错误级别使用不同的exitcode,以便为PowerShell脚本提供一些信息。例如,这些是7zip error levels

  • 0 - >没错误
  • 1 - >警告
  • 2 - >致命错误
  • 7 - >命令行错误
  • 8 - >操作内存不足
  • 255 - >用户停止了该过程