Я не знаю, что такое «связка кода». Я не уверен, что верю тебе. Если у вас столько всего происходит в блоке уловов, вы делаете что-то не так.
Я бы поместил этот вид кода в аспект, если у вас есть доступный AOP.
«Ошибка в базе данных» может выдать свое собственное исключение. Что с этим происходит?
Единственный шаг, который я вижу здесь, это необходимый, это маршрутизация к просмотру ошибок.
Что делает отбрасывание исключения? Это просто передача денег в другом месте. Если все эти шаги не нужно делать, и все, что вы делаете, чтобы сбросить, тогда не поймайте это вообще. Пусть исключение всплывет там, где оно действительно обработано.