6

我在調試單元測試時遇到了一個非常奇怪的問題。如果我調試單元測試(ctrl + r ctrl + t),我得到一個未捕獲的異常。如果我只是運行單元測試(ctrl + r t),我不會得到這個異常。C#在單元測試中未捕獲的異常

未捕獲的異常是NHibernate.ByteCode.ProxyFactoryFactoryNotConfiguredException。

堆棧跟蹤:

at NHibernate.Bytecode.AbstractBytecodeProvider.get_ProxyFactoryFactory() in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Bytecode\AbstractBytecodeProvider.cs:line 32 
at NHibernate.Validator.Util.NHibernateHelper.IsProxyFactoryConfigurated() 

我所使用的.NET反射來看看定義此方法的組件(NHibernate.Validator ......它是開源的),這裏是「拋出」的方法例外:

public static bool IsProxyFactoryConfigurated() 
{ 
    try 
    { 
     IProxyFactoryFactory proxyFactoryFactory = Environment.BytecodeProvider.ProxyFactoryFactory; 
     return true; 
    } 
    catch (ProxyFactoryFactoryNotConfiguredException) 
    { 
     return false; 
    } 
} 

這個異常不能被Try Catch塊捕獲嗎?

回答

3

這聽起來像你看到一個first chance exception

您是否啓用了「突破一次機會例外」?您應該能夠在Debug-> Exceptions菜單中進行配置。

+0

我去了這個菜單,並取消選中用戶 - 未處理的公共語言運行時異常的列,這似乎修復了第一次機會異常的突破。謝謝。 – 2011-04-15 03:32:21

2

您可能在調試器中設置了Break on All Exceptions,這會導致在引發異常時VS立即中斷,而不管它是否被捕獲。
單擊調試,例外。