Обработка исключений на уровне хранилища при использовании шаблона хранилища generi c - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь реализовать ведение журнала для сценария системных исключений ios. Приложение, над которым я работаю, asp. net mvc реализовано с использованием репозитория generi c. Я не уверен, насколько это важно или возможно войти в систему на уровне хранилища. Например, в репозитории есть методы, подобные следующим:

public T Find(Expression<Func<T, bool>> predicate)
{
  return DbSet.AsNoTracking().SingleOrDefault(predicate);
}

SingleOrDefault(). В методе linq есть исключения, такие как ArgumentNullException и InvalidOperationException. Мне интересно, в каком сценарии будет выдано это исключение, и в этом случае система выйдет из строя или просто вернет ноль. Нужно ли проверять обнуляемость T и predicate вместе с ним?

Я нашел такой вопрос ( Обработка исключений в структуре сущностей, MVC с шаблоном хранилища ), но это только описывает нормы ведения журнала.

Будет ли простая попытка поймать, как это сделает следующая работа?

try
{
  return DbSet.AsNoTracking().SingleOrDefault(predicate);
}
catch
{
  HelperSeriLog.WriteError(ex);
  return null;
}
...