I wish to know if i can catch the unhandled exceptions thrown by another process which I started using the Process.Start(...)
I know i can catch the standered error using this link , but what I want is to catch the error that are usually caught by the Just In Time debugger of the.net environment, the window with the following words: "An unhandled exception has occurred in your application . If you Continue, the application will ignore this error and attempt to continue . If you click Quit, the application will be shut down immediately ...." Which is then followed by the exception message and a "Continue" and "Quit" button.
You can try something like that to avoid the debugger question to appear, you won't get the exception but only the exit code:
class Program
{
static void Main(string[] args)
{
try
{
ProcessStartInfo info =
new ProcessStartInfo("ErroneusApp.exe");
info.ErrorDialog = false;
info.RedirectStandardError = true;
info.RedirectStandardOutput = true;
info.CreateNoWindow = true;
info.UseShellExecute = false;
System.Diagnostics.Process p =
System.Diagnostics.Process.Start(info);
p.EnableRaisingEvents = true;
p.Exited += p_Exited;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
static void p_Exited(object sender, EventArgs e)
{
Process p = sender as Process;
if (p != null)
{
Console.WriteLine("Exited with code:{0} ", p.ExitCode);
}
else
Console.WriteLine("exited");
}
}
In this question they provided another workaround for that, but changing some registry values.