2016-08-19 7 views
2

Написание фрагмента кода, который открывает другой процесс.Как уловить исключение во время выполнения другого процесса в C#?

public void StartProcess() 
{ 
    Process p = Process.Start("Process1"); 
    p.WaitForInputIdle(); 
    SetParent(p.MainWindowHandle, this.Handle); 
    IntPtr h = p.MainWindowHandle; 
} 

Это начнет процесс 1. Есть ли способ уловить исключения во время выполнения в Process1?

Это другой вопрос из приведенного кода here, поскольку он рассказывает вам, как поймать исключение во время выполнения в сборку .net exectuable. Приложение, которое я открываю, построено с использованием Delphi, и у меня нет исходного кода

+0

@giladgreen Это не дубликат, как код, который вы показали [здесь] (http://stackoverflow.com/questions/2279181/catch-another-process-unhandled-exception), в котором описано, как поймать исключение во время выполнения сборка .net exectuable. Приложение, которое я открываю, построено с использованием Delphi, и у меня нет исходного кода. –

ответ

1

Процесс должен поймать само исключение. Затем вы можете отправлять отчеты об ошибках через шаблон наблюдателя.

+0

Process1 является сторонним приложением. Это только начинает процесс. Я не понимаю, что вы подразумеваете под ** процессом, должен поймать само исключение **. –

+0

Я имею в виду, что вы можете прочитать результат и отследить стандартный вывод другого приложения, но вы не можете справиться с исключениями. Приложение должно сотрудничать с вами в этом. В противном случае вы получите результат, но никогда не знаете, что происходит внутри. –

+0

проблема в том, что у меня нет исходного кода приложения. есть ли способ поймать любое исключение, которое встречается в любом приложении. –