如果从c#代码中调用,在EXE文件中捕获错误
本文关键字:文件 EXE 错误 代码 调用 如果 | 更新日期: 2023-09-27 18:07:13
我正在从c#代码运行一个exe文件,由于某些原因错误发生在该exe文件中。它一直等待,最终给出一个弹出错误"abc.exe已停止工作"等,但它不退出。
//The below code is calling it successfully
public bool callExe(string exePath)
{
Log("EXE excution Started : " + exePath, INFO_TAG);
try
{
Process exeProcess = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = exePath;
exeProcess.StartInfo = startInfo;
startInfo.Arguments = this.prjId.ToString();
exeProcess.Start();
exeProcess.WaitForExit();
int exitCode = exeProcess.ExitCode;
return true;
}
catch (Exception e)
{
errorCode = EXE_ERROR;
return false;
}
}
虽然我可以捕获退出代码,但我只能在它退出时这样做。
这个链接可能有用https://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandarderror%28v=vs.110%29.aspx
订阅ErrorDataReceived事件并获取错误消息。在这里输入链接描述
与其等待进程退出,不如订阅进程退出事件
如果你的exe给出某种未处理的异常,你将无法得到确切的错误。Windows事件查看器可以帮助您获取错误编号和可能的原因。