#c# #visual-studio-2010 #nhibernate #exception #exception-handling
#c# #visual-studio-2010 #nhibernate #исключение
Вопрос:
Я сталкиваюсь с очень странной проблемой при отладке модульного теста. Если я отлаживаю модульный тест (ctrl r, ctrl t) Я получаю неперехваченное исключение. Если я просто запущу модульный тест (ctrl r t) Я не получаю это исключение.
Неперехваченным исключением является NHibernate.Байт-код.Исключение ProxyFactoryFactoryNotConfiguredException.
Трассировка стека:
at NHibernate.Bytecode.AbstractBytecodeProvider.get_ProxyFactoryFactory() in d:CSharpNHNHnhibernatesrcNHibernateBytecodeAbstractBytecodeProvider.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?
Ответ №1:
Похоже, вы видите исключение первого шанса.
Включен ли у вас «Прерывание при исключениях первой возможности»? Вы должны иметь возможность настроить его в меню Debug-> Exceptions.
Комментарии:
1. Я зашел в это меню и снял флажок с столбца User-необработанный для исключений Common language runtime, и это, казалось, устранило сбой в этом исключении first chance. Спасибо.
Ответ №2:
Вероятно, у вас есть Break для всех исключений, установленных в отладчике, что приводит к прерыванию VS, как только генерируется исключение, независимо от того, было ли оно перехвачено.
Щелкните Отладка, Исключения.