Если вы не обрабатываете ошибку в DAL или BLL, она всплывает, пока вы ее не поймаете.
Исключения не перезаписываются.
Если вы обработали его в DAL, у вас больше нет исключения.
Если вы не обработали его полностью, BLL все равно может выдать другое исключение из-за неправильно обработанной ошибки в DAL.
Общее правило звучит так:
Обрабатывать конкретные ошибки и не использовать универсальный универсальный метод. Разрешить любым непредвиденным исключениям пузыриться дальше вверх по стеку.
Попробуйте запустить FxCop в своем проекте, чтобы увидеть, где вы нарушаете лучшие практики.
http://www.gotdotnet.com/team/fxcop