2009-09-13 2 views
0

Какого исключения типа проверки требуется LINQ внутри TRY/поймать блок при выполнении операции CRUD (создание, чтение, обновления, удаление)Какого исключения типа проверки требуется LINQ внутри TRY/поймать блок при выполнении Crud УСТАНОВКИ

для например :

try { 
    db.SubmitChanges(ConflictMode.ContinueOnConflict); 
} 
catch (ChangeConflictException e) { 
    foreach (ObjectChangeConflict occ in db.ChangeConflicts) { 
     // All database values overwrite current values. 
     occ.Resolve(RefreshMode.OverwriteCurrentValues); 
    } 
} 
+0

Вы используете Linq-to-Sql, Linq-to-Entities или что-то еще? Благодаря! – Pwninstein

ответ

2

Если это не так хорошо документирована, что исключения будут выброшены в обычных сценариев использования (и я не могу сказать, с верхней части моей головы, что будет выброшен в вашей ситуации), я предлагаю попробовать чтобы разбить его, выполнив операции, которые, как вы знаете, потерпят неудачу, а затем добавьте исключение, которое было отправлено в блок try/catch.

В любом случае попытка разбить собственный код - это хорошее упражнение для отладки, так как оно выявляет проблемы, которые могут возникнуть, что дает вам возможность изящно восстанавливаться.

+0

В конце дня эти исключения будут распространяться на DbException (явным или составленным как InnerException). Я бы рекомендовал поймать это исключение, но мы могли бы по-разному реагировать, когда база данных не работает по сравнению с отказом оператора SQL Select. –

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