小编Fan*_*ner的帖子

MethodInfo.Invoke() 抑制异常

我使用反射来调用引发异常的方法。但是这个异常没有抛出,我也无法捕获它。
我通过调用调用:

GetMethod().Invoke(myInstance, new object[] { result });
Run Code Online (Sandbox Code Playgroud)

其中结果是对象类型。被调用的方法抛出异常,例如:

public async Task MyMethod(Object input)
    {
        // do something...
        throw new Exception("Error");

    }
Run Code Online (Sandbox Code Playgroud)

如果我不使用 try-catch 块,应用程序将连续,如果我使用如下块:

try
{
    GetMethod().Invoke(myInstance, new object[] { result });
    log("everything is ok");
}
catch(Exception e)
{
    log(e.message) 
}
Run Code Online (Sandbox Code Playgroud)

所以预期的输出应该是:

错误

但是

一切都好

c# reflection

2
推荐指数
1
解决办法
1119
查看次数

标签 统计

c# ×1

reflection ×1