我有一些Windows应用程序。我将从控制台应用程序逐个运行所有这些应用程序。如果任何应用程序产生运行时异常,那么它应该保存该异常的详细信息并需要移动到下一个应用程序。
我尝试过以下链接中给出的解决方案: catch another process unhandled exception。 但它并没有解决我的问题。
对于Ex: 从我的控制台应用程序,调用名为' App1.exe'的Windows应用程序。如果App1给出了运行时异常,它应该由控制台应用程序记录并继续其余部分。
请任何人提供最佳解决方案或想法,以获取在运行时提供异常的应用程序的未处理异常的详细信息。
答案 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中显示异常,则必须在应用程序本身中捕获它们(并在需要时记录它们以在控制台应用程序中处理它们。)