Как обрабатывать исключения в многослойном проекте и где лучше пробрасывать ошибки?

C#многослойная архитектураобработка исключенийошибкипроектирование