如果从C#代码调用,则在EXE文件中捕获ERROR

时间:2015-08-11 09:29:50

标签: c# exe

我正在运行来自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;
                }
            }

虽然我可以捕获退出代码,但只有退出时我才能这样做。

1 个答案:

答案 0 :(得分:0)

此链接可能有用https://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandarderror%28v=vs.110%29.aspx

订阅ErrorDataReceived事件并获取错误消息。 enter link description here

您可以订阅Process Exit事件

,而不是等待它退出

如果您的exe提供某种未处理的异常,您将无法获得确切的错误。 Windows事件查看器可以帮助您获取错误号和可能的原因。