捕获Windows应用程序的运行时异常

时间:2016-05-18 07:06:12

标签: process exception-handling windows-runtime runtimeexception unhandled-exception

我有一些Windows应用程序。我将从控制台应用程序逐个运行所有这些应用程序。如果任何应用程序产生运行时异常,那么它应该保存该异常的详细信息并需要移动到下一个应用程序。

我尝试过以下链接中给出的解决方案: catch another process unhandled exception。 但它并没有解决我的问题。

对于Ex: 从我的控制台应用程序,调用名为' App1.exe'的Windows应用程序。如果App1给出了运行时异常,它应该由控制台应用程序记录并继续其余部分。

请任何人提供最佳解决方案或想法,以获取在运行时提供异常的应用程序的未处理异常的详细信息。

1 个答案:

答案 0 :(得分:0)

您的选项是其中之一或组合:

  • 在您的控制台应用中使用您应用的返回代码
  • 从应用程序本身捕获并记录异常(例如在文件或监视器中)并在控制台应用程序中处理日志文件。

以下是控制台应用程序的代码,它启动另一个应用程序并等待获取应用程序进程的返回代码。如果您提到的异常发生在应用程序中,则会得到错误代码255,如果没有错误则为0。

    static void Main(string[] args)
    {
        try
        {
            var process = Process.Start("WpfApplication1.exe");
            process.WaitForExit();
            Console.WriteLine("App exited with code " + process.ExitCode);
            Console.ReadKey();
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }

如果您不希望在应用程序的UI中显示异常,则必须在应用程序本身中捕获它们(并在需要时记录它们以在控制台应用程序中处理它们。)