В каком слое должна происходить регистрация исключений SQL? - PullRequest
0 голосов
/ 19 декабря 2010

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

Если исключение SQL выдается на уровне доступа к данным (например, существуетпроблема сети, обрезание строки и т. д.) Как далеко должна пройти информация об исключительной ситуации до того, как будет зарегистрирована?В идеале журнал должен содержать сообщения из разных слоев, которые предоставят разработчику достаточно информации, чтобы отследить проблему.Можно ли разрешить исключение SQL на уровне доступа к данным, чтобы оно было заброшено до пользовательского интерфейса и зарегистрировано там?Или это должно быть перехвачено локально, зарегистрировано, и или переброшено или обернуто в другое пользовательское исключение?Или же уровень доступа к данным должен возвращать специальный тип, имеющий флаг, указывающий, была ли проблема, и, если это так, он также добавляет информацию об исключении.Кроме того, стоит ли беспокоиться о безопасности информации об исключениях / трассировке SQL, чтобы она соответствовала интерфейсу пользователя?

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

1 Ответ

2 голосов
/ 19 декабря 2010

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

Это также имеет смысл, потому что легко распределить вход по аспектам и применять их декларативно к интерфейсам служб.

Вы можете переносить и отбрасывать, если пользовательское исключение добавляет значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...