使用Process.Start()时,将异常气泡返回给调用者



我有一个windows form应用程序和command prompt exe。我正在执行命令提示符,其中win-form按钮单击

ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "ConsoleApplication2.exe";
Process.Start(info);

我有一些按钮点击事件的操作,它是在调用exe后执行的。但我只需要在没有从命令提示符exe抛出异常的情况下执行。基本上需要的是从exe中冒出异常来获胜。我尝试抛出异常,但由于exe和win-from都是两个不同的应用程序实例,所以不会将异常抛出给调用者。有什么办法做到这一点吗?

您的代码激活了一个exe文件。请注意,您的程序和其他程序一样,正在返回一个代码。该返回代码可以通过执行以下操作来实现:

ProcessStartInfo info = new ProcessStartInfo();
     info.FileName = "ConsoleApplication2.exe";
     Process p = Process.Start(info);
     p.WaitForExit();
     int eCode = p.ExitCode;

请不要在主线程中这样做,因为在进程停止之前,它会停止。在ConsoleApplication2.exe中,确保在出现异常的情况下(在main函数中)返回一个指示出错的代码(数字)。就这么简单:

  static int Main()
  {
     try
     {
        // My code
     }
     catch (Exception)
     {
        return 5;// Meaning error
     }
     return 0; // all went better then expected!
  }

最新更新