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立即中断,而不管它是否被捕获。
单击调试,例外。