我有一个进程启动一个抛出异常的.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没有显示。
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以在代码的第一行使用try / catch,然后处理catch。
try { Assembly assembly = Assembly.LoadFrom("ConsoleApplication1.exe"); }
catch { throw; }
否则你总是可以试试这个:
myProcess.StartInfo.FileName = @"C:\Where\Your\File\Is.exe";
希望这有帮助。