當通過methodInfo.Invoke調用方法時,如果引發異常,它似乎不會傳播到我的catch塊。從c#中的反射方法調用傳播的異常#
object value;
try
{
value = myMethod.Invoke(null, parameters);//program crashes with uncaught exception
}
catch
{
throw new Exception("Caught!");//never executed
}
這種方法提高特定的例外是KeyNotFoundException,但沒關係,因爲我趕上一切吧?
的特定錯誤信息,我從Visual Studio中得到的是
KeyNotFoundException was unhandled by user code
,而通常情況下,消息會說
KeyNotFoundException was unhandled
如果調用不是反射調用。
我可以只是檢查方法,看看他們的鑰匙是否在那裏,如果沒有返回null,但使用異常處理似乎更可取。有沒有什麼方法可以從反射的方法調用中傳播異常?
什麼是myMethod? –
嗨Lucina,我只是劫持這個帖子,讓你知道,在TeX.SX,它通常是更好的自我回答,而不是刪除[你的問題](http://tex.stackexchange.com/q/255629/) 17423)。我很好奇什麼kaomoji看起來像TeX排版:)我確信其他人也是如此。我會在一天左右刪除這條評論(或者只要你讓我知道你已經看到它) - 我只是想讓你知道。 :) –