处理捕获异常

时间:2011-10-14 11:09:52

标签: c# exception process

我有一个进程启动一个抛出异常的.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 个答案:

答案 0 :(得分:1)

试试这个:

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

link,应返回完整路径

答案 1 :(得分:0)

您可以在代码的第一行使用try / catch,然后处理catch。

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

否则你总是可以试试这个:

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

希望这有帮助。