Процесс ловли исключения - PullRequest
0 голосов
/ 14 октября 2011

У меня есть процесс, который запускает .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 не отображается.

Ответы [ 2 ]

1 голос
/ 14 октября 2011

Попробуйте:

System.IO.Path.GetFullPath("ConsoleApplication1.exe")

ссылка , которая должна возвращать полный путь

0 голосов
/ 14 октября 2011

Вы можете просто использовать try / catch в первой строке кода и затем обработать catch.

try { Assembly assembly = Assembly.LoadFrom("ConsoleApplication1.exe"); }
catch { throw; }

И в противном случае вы всегда можете попробовать это:

myProcess.StartInfo.FileName = @"C:\Where\Your\File\Is.exe";

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...