예외를 throw하는 .exe를 시작하는 프로세스가 있습니다. 프로세스가 예외를 잡을 수있는 방법이 있습니까?캐칭 예외 처리
지금까지이 시도했습니다
Assembly assembly = Assembly.LoadFrom("ConsoleApplication1.exe");
Type[] types = assembly.GetTypes();
foreach (Type t in types)
{
MethodInfo method = t.GetMethod("Main",
BindingFlags.Static | BindingFlags.NonPublic);
if (method != null)
{
try
{
method.Invoke(null, null);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
break;
}
}
하지만 나는 한 .exe를 찾을 수 없다는, 첫 번째 줄에 예외가.
Process myProcess = new Process();
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.FileName = "C:\\Users\\John\\Documents\\Visual Studio 2010\\Projects\\ConsoleApplication1\\ConsoleApplication1\\bin\\Debug\\ConsoleApplication1.EXE";
myProcess.StartInfo.CreateNoWindow = true;
myProcess.Start();
하지만 디버깅 할 때,이 예외 아니며, 해당 ConsoleApplication1.exe가 표시되지 않습니다 : 나는 또한이 시도했습니다.
실제로 첫 번째 코드 블록 (리플렉션을 통해 메소드 호출)과 두 번째 코드 블록 (프로세스 시작) 사이의 연결은 보이지 않지만 두 번째 예제에서이 전체 경로를 사용하지 않는 이유는 무엇입니까? 첫 번째 예가 무엇이 발생했는지 살펴 보겠습니다. – Groo
파일 대포가 발견되면 디렉토리 경로가 잘못되었다고 들었을 때. 작업 디렉토리를 설정하십시오. –