使用 InnerException 就可以显示出反射调用里头的错误信息。
- void fn(int n)
- {
- if (n >= 10)
- return;
- throw new ArgumentException("参数必须大于10");
- }
- Type type = typeof(Program);
- object instance = Activator.CreateInstance(type);
- MethodInfo mi = type.GetMethod("fn", BindingFlags.NonPublic | BindingFlags.Instance);
- try
- {
- mi.Invoke(instance, new object[] { null });
- }
- catch(TargetInvocationException targetEx)
- {
- if (targetEx.InnerException != null)
- {
- throw targetEx.InnerException;
- }
- }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。