2017-02-17 5 views
3

Каковы рекомендуемые методы написания слоя антикоррупции в отношении исключений?Обработка исключений в слое антикоррупции (ACL)

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

ответ

3

Уровень защиты от коррупции здесь, чтобы предотвратить проникновение идиом и поведение внешней системы в ваш ограниченный контекст. Поэтому представляется хорошей идеей обернуть исключения, которые выходят из него, в те, которые имеют смысл для вашего ВС.

Выполнение этого также заставляет задуматься о случаях ошибок, которые могут произойти внутри слоя антикоррупции, и сделать ваше приложение более надежным. Кстати, не все ошибки, происходящие внутри ACL, могут/будут вызваны исключениями сторонних системных клиентов. Вам также нужно адресовать удачные, но некогерентные результаты, ошибки, сигнализируемые по-другому, чем исключения (например, неожиданные статусы ответа HTTP) и т. Д.

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

0

Я не обертываю все эти исключения. Я могу допустить, чтобы устаревшие исключения пузыряли стек. Причина в том, что он может загромождать ваш уровень защиты от коррупции. Но иногда это зависит от того, что могут возникнуть требования по возврату кодов ошибок для определенных исключений. Эти исключения я переношу в свой новый ограниченный контекст (слой антикоррупции).