Регистрация логики и ошибок данных в MVC3 с помощью Elmah - PullRequest
1 голос
/ 20 июля 2011

В моем приложении MVC3 есть слой Service , который, помимо прочего, играет роль репозитория в качестве слоя между моим слоем Data и реальным веб-приложением.Я кодировал все свои GetById методы, чтобы они были надежными, используя FirstOrDefault, а не просто First, потому что Id передается в URL и не может быть гарантированно действительным Id.

Теперь я нахожу себягде я делаю FirstOrDefault, то только в том случае, если результат не равен нулю.Я хотел бы зарегистрировать событие, когда оно пустое, а затем перейти к ничего не делать и т. Д. Теперь я уже использую Elmah для регистрации необработанных исключений, и у меня очень мало опыта обработки исключений и т. Д. В MVC3, но это происходит смне, что для меня может быть лучше использовать простой First, с Elmah, регистрирующим исключение, если никакая сущность не найдена.

Как мне подходить к этому сценарию, где недопустимый Id вполне определенно является логическим исключением, но не исключение низкого уровня CLR?Это не так, когда кого-то просят ввести Id, и для его поискового термина не найдено ни одной сущности, что является нормальным логическим результатом.

1 Ответ

1 голос
/ 20 июля 2011

Создание исключений может быть дорогим. Ваш первоначальный подход к проверке пользовательского ввода является более надежным. Я бы порекомендовал использовать каркас журналирования, такой как NLog (http://nlog -project.org), чтобы регистрировать случай, когда передан неверный идентификатор.

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

...