Чистая архитектура: куда мне поместить исключения? - PullRequest
2 голосов
/ 05 мая 2020

Прежде всего, я представляю вам контекст. Я пишу api в C# и ASP. NET Core, и я пытаюсь следовать чистой архитектуре.

В итоге: я не знаю, где разместить свои исключения. Я написал небольшой сценарий, в котором я объясняю свой лог c.

  1. Предположим, что я выбрасываю DuplicatePersonException в конкретный шлюз.
  2. Это исключение будет перехвачено моим вариантом использования (интерактором) как простое исключение. Я не думаю, что для варианта использования необходимо знать настоящее исключение.
  3. Когда я поймаю ошибку, я вызову метод в моем OutputBoundary (ведущий).
  4. В конце, этот докладчик отформатирует ответ и подготовит соответствующий ActionResult на основе DuplicatePersonException.

Если я соблюдаю «внутреннюю зависимость», я Мне нужно поместить DuplicatePersonException в слой моего варианта использования. Почему не на уровне домена? Потому что ему не обязательно знать об исключениях такого рода. Более того, я не знаю, нужно ли мне создавать абстрактное настраиваемое исключение и расширять его как на уровне шлюза, так и на уровне докладчика: это меня немного сбивает с толку.

Хорошо , это решение мне не нравится, но я не могу объяснить, почему. Мне кажется неправильным помещать мои исключения в этот слой.

В заключение, если у вас есть какие-либо советы или решения, я с удовольствием их приму!

Большое спасибо за попытку в помощь!

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