在未处理的异常上重新启动应用程序

ron*_*nag 5 c++ windows exception

如果程序崩溃,程序是否可以自动重启?

就像是:

  1. 抛出未处理的异常.
  2. 释放进程分配的所有资源.
  3. 重新开始并呼叫主要.

对于我正在处理的服务器应用程序,我希望这种行为.如果客户端错过使用服务器,它可以获得std :: bac_alloc异常,在这种情况下,我希望服务器只是重启而不是崩溃和关闭,从而避免手动启动.

T.E*_*.D. 6

我之前在Windows中通过win32 CreateProcess调用从另一个程序运行所述程序来完成此操作.然后另一个程序等待"被监视"进程退出,CreateProcess()如果有,则再次调用它.您通过在进程'句柄上执行WaitForSingleObject来等待进程退出,该句柄作为CreateProcess()调用的返回值之一.

您当然希望以某种方式编程,以使监视过程自行关闭并使其子进程关闭.