我有一个windows 窗体
应用程序和一个命令提示符
exe。我在 win form button click 中执行命令提示符
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "ConsoleApplication2.exe";
Process.Start(info);
我有一些操作 whtin 按钮单击事件调用 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!
}
关于c# - 使用 Process.Start() 时将异常冒泡回调用者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17856066/