visual studio 2010 - c#单元测试中的未捕获异常

本文关键字:捕获异常 单元测试 studio 2010 visual | 更新日期: 2023-09-27 17:50:26

我在调试单元测试时遇到了一个非常奇怪的问题。如果我调试单元测试(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)。验证器……它是开源的),下面是"抛出"异常的方法:

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

为什么这个异常不会被Try Catch块捕获?

visual studio 2010 - c#单元测试中的未捕获异常

听起来像是第一次异常。

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

你可能在调试器中设置了Break on All Exceptions,这会导致VS一旦抛出异常就会中断,不管它是否被捕获。