微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

单声道框架反射调用抛出 OverFlowException

如何解决单声道框架反射调用抛出 OverFlowException

在dotnet框架或mono框架中,通过反射调用方法调用过程中的异常会被TargetInvocationException包裹起来。但是我发现OverFlowException在mono中表现出不同的行为,它没有任何包装直接抛出,这是mono框架的错误吗?

示例代码

public class Demo
{
   private void test()
   {
      throw new OverflowException();
   }
}

class Program
{
   static void Main(string[] args)
   {
       Demo demo = new Demo();
       MethodInfo method = typeof(Demo).getmethod("Test",BindingFlags.Instance | BindingFlags.NonPublick);
       
       try
       {
          method.Invoke(demo,new object[0]);
       }
       catch(OverflowException)
       {
          //for mono framework,throws OverflowException
       }
       cathc(TargetInvocationException)
       {
          //for dotnet framework,throws TargetInvocationException
       }
   }
}

同样的代码,在mono和dotnet中执行不同,只有OverflowException才显示出这种差异,谁能解释一下原因?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。