我在调试单元测试时遇到了一个非常奇怪的问题。如果我调试单元测试 (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 block 捕获?
最佳答案
听起来您看到的是 first chance exception .
您是否启用了“Break on first-chance exceptions”?您应该能够在 Debug->Exceptions 菜单中配置它。
关于C# 单元测试中未捕获的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5671917/