Трехуровневая архитектура: следует ли исключать зависимости между слоями? - PullRequest
3 голосов
/ 25 апреля 2011

После этого вопроса: Обработка исключений в пользовательском интерфейсе Swing (от низкого до высокого уровня и перенос исключений)

Существует очевидная зависимость между логикой / службой и уровнем пользовательского интерфейса в том, что исключение вызывается из метода в классе обслуживания (IOException, возникающее из файловой операции) и обрабатывается в коде компонента Swing.

Этого следует избегать? Если лучше избежать таких зависимостей, как можно обрабатывать исключения в классе обслуживания? Должен ли я просто обернуть исключение в RuntimeException и позволить ему распространиться на UncaughtExceptionHandler?

Ответы [ 2 ]

2 голосов
/ 25 апреля 2011

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

1 голос
/ 25 апреля 2011

Если вы сохраняете / загружаете данные, нормально распределить IOException между слоями.Но такие исключения, как SaxParserException / SqlException должны быть упакованы, потому что они зависят от текущей реализации.

...