Место регистрации - PullRequest
       10

Место регистрации

1 голос
/ 13 ноября 2008

Где я должен регистрировать исключения? На уровне обслуживания данных (ExecuteDataSet и т. Д.) И / или на уровне доступа к данным и / или на бизнес-уровне?

Ответы [ 3 ]

2 голосов
/ 13 ноября 2008

На границе физического уровня.

Также в обработчике исключений верхнего уровня в клиенте.

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

1 голос
/ 13 ноября 2008

Я обычно позволяю исключениям распространяться и регистрировать их, когда они достигают самого верхнего уровня Например

main {
    try {
        application code
    } catch {
        preform logging
    }
}

Но это имеет смысл только для фатальных исключений. Другие исключения Я обычно регистрирую их в блоке, который обрабатывает восстановление после указанного исключения.

1 голос
/ 13 ноября 2008

Если вы вызываете исключение, вы должны записать его в журнал, когда оно произойдет, а затем всплыть. В противном случае только конечный пользователь должен регистрировать исключение (у вас, конечно, может быть много трассировок, и в этом случае оно может быть зарегистрировано совсем немного).

Конечный пользователь может быть компонентом пользовательского интерфейса, или службой, или чем-то еще ...

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

...