2013-02-15 2 views
0

Я определяю соглашение для AutoMapping в Fluent NHibernate. Внутри этой конвенции, я сгенерирует исключение:Как бросать исключения при вызове из библиотеки?

public void Apply(IManyToManyCollectionInstance instance){ 
    ... 
    if(<error>) 
    throw new MappingException("Invalid Mapping"); 

    <doSomeStuff> 
} 

В другом классе, я инициализировать конфигурацию, в результате чего в коде выше выполняется:

public void init(){ 
    try{ 
    SessionFactory = configuration.BuildSessionFactory(); // Apply(...) will be called here 
    } 
    catch (MappingException ex) 
    { 
    <catchError> 
    } 

Когда <error> верно, <doSomeStuff> подсвечивается VisualStudio, и я предупреждаю, что «MappingException был необработанным кодом пользователя».

Почему исключение не выбрасывается до <catchError>?

Библиотека Fluent NHibernate добавлена ​​менеджером пакетов NuGet. Если это причина, по которой исключение не переадресовано, как я могу отправить MappingException в <catchError>?

ответ

3

Причина этого поведения, скорее всего, заключается в том, что вы проверили следующий параметр: Отладка -> Исключения -> Столбец «Брошенный» для «Исключения общего времени выполнения языка».

Если вы нажмете F5 или продолжите отладку, код в конечном итоге достигнет <catchError>.

Смежные вопросы