C # Неперехваченное исключение в модульном тестировании

#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, как только генерируется исключение, независимо от того, было ли оно перехвачено.
Щелкните Отладка, Исключения.