2013-07-24 88 views
1

這一塊確實烘烤了我的麪條...try/catch塊中未處理的異常

我有一些代碼。當我運行它時,Visual Studio會抱怨未處理的異常。而且,果然,的一個例外。然而,它是一個try/catch塊內blatently,所以... 那是如何「未處理」?

我搜索了四周,唯一相關的命中我可以找到與LINQ有關。但我沒有使用任何LINQ,所以不能這樣做。

相關的代碼看起來是這樣的:每次

try 
{ 
    method.Invoke(target, new object[0]); 
} 
catch (MyException e) 
{ 
    Console.WriteLine(e); 
} 

通過Invoke()被擊中的方法是不同的。其中一些方法確實會拋出異常 - 這很好。但這就是爲什麼我把它放在試塊裏!我不明白爲什麼VS抱怨說這個異常沒有處理。

(是的,我已經檢查了被拋出的異常是一個MyException對象。)

在這一點上,我唯一的猜測是,它以某種方式與使用反射。我真的需要解決這個問題,但有...任何建議?

+0

你的代碼只能處理'MyException'的實例,你被告知什麼樣的處理是未處理的? –

+0

@TI正如我所說,報告的異常與我正在捕捉的異常完全匹配,包括完整的命名空間路徑。 OMG。 – MathematicalOrchid

回答

4

您應該閱讀MethodInfo.Invoke的文檔。

例外

TargetInvocationException - 被調用的方法或構造函數拋出異常。

備註

如果調用的方法拋出一個異常,Exception.GetBaseException方法返回異常。

您的例外被包裹在TargetInvocationException中。

+0

OMG。哎呦......這只是偷偷摸摸。 – MathematicalOrchid

+0

要清楚:我更改了異常類型,並且VS_still_中斷了異常。但是,現在讓我在例外之後繼續...... – MathematicalOrchid