我在调试单元测试时遇到了一个非常奇怪的问题。如果我调试单元测试(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块捕获此异常?
答案 0 :(得分:3)
听起来你正在看first chance exception。
您是否启用了“中断第一次机会异常”?您应该可以在Debug-> Exceptions菜单中配置它。
答案 1 :(得分:2)
你可能在调试器中设置了Break on All Exptions,这会导致VS在抛出异常时立即中断,无论它是否被捕获。
单击Debug,Exceptions。