如何解决单声道框架反射调用抛出 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 举报,一经查实,本站将立刻删除。