调用动态方法C#时的错误处理

时间:2016-03-16 11:22:59

标签: c# .net

我有一个主要方法的控制台应用程序如下:

public static void Main(string[] commandString)
{
    try
    {
        var asm = Assembly.Load("CAT");
        var t = asm.GetType("CAT",true,true);
        var _Adjudication = Activator.CreateInstance(t);
        t.InvokeMember("NAMEME", BindingFlags.InvokeMethod, null, _Adjudication, new object[] { "Fluffy", 5});
    }
    catch (Exception ex)
    {
        Environment.Exit(99);
    }
}

CAT课程如下:

public class CAT
{
    public void NAMEME(string name, int age)
    {
       try
       {
           throw new Exception();
       }
       catch (Exception ex)
       {
           throw ex;
       }
    }
}

我有一个错误说明"用户代码未处理异常"当我运行这个程序。错误由NAMEME方法的Catch块捕获。

如何获取异常来命中我的Main方法的catch块?

PS:我使用的是.NET Framework 4.0

1 个答案:

答案 0 :(得分:2)

这实际上有效,我复制了所有的源代码,我让它在本地运行就好了。您的代码中提供了一些错字,但我认为它们在您的开发框中的实际源代码中不存在,因为您说您在CAT类中获得了异常。为了让它在主应用程序中点击下一个catch,您需要在抛出异常后继续 - 然后它将落在您期望的位置。

enter image description here