单元测试中的C#未捕获异常

时间:2011-04-15 02:55:45

标签: c# visual-studio-2010 nhibernate exception exception-handling

我在调试单元测试时遇到了一个非常奇怪的问题。如果我调试单元测试(ctrl + r ctrl + t)我得到一个未捕获的异常。如果我只是运行单元测试(ctrl + r t),我不会得到这个例外。

未捕获的异常是 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 Reflector查看定义此方法的程序集(NHibernate.Validator ......它的开源代码),这里是“抛出”异常的方法:

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

如何通过Try Catch块捕获此异常?

2 个答案:

答案 0 :(得分:3)

听起来你正在看first chance exception

您是否启用了“中断第一次机会异常”?您应该可以在Debug-> Exceptions菜单中配置它。

答案 1 :(得分:2)

你可能在调试器中设置了Break on All Exptions,这会导致VS在抛出异常时立即中断,无论它是否被捕获。
单击Debug,Exceptions。