Установите обработчик исключений в вашем Struts-config, позвольте всем исключениям всплыть и зарегистрируйте их там. Это сделает ненужным весь код перехвата и регистрации исключений.
Что касается JSP, не делайте ничего подверженного ошибкам в JSP, сделайте это в действии, затем добавьте результаты в атрибуты запроса.
Полагаю, вы могли использовать древнюю версию Struts 1, я видел похожий код, в котором им приходилось перехватывать исключения в действиях, очевидно, потому что обработчики исключений не работали с ранними версиями Struts. Теперь это исправлено, первое, что вы должны сделать, это обновить приложение по крайней мере до 1.2, предпочтительно до 1.3. Использование устаревшей версии веб-фреймворка - это плохо, среди исправлений, которые вы упускаете, есть исправления безопасности, поэтому ваше приложение может быть небезопасным.
Глядя на ваш пример кода, на самом деле все не так уж и плохо. Я не вижу смысла ловить различные типы исключений в ваших действиях (что может быть яснее, если бы я знал, что вы выбрали), но я не вижу плохих практик, таких как запись вещей в каждом слое и последующее их отбрасывание (чтобы одна и та же трассировка стека появляется неоднократно), либо ведение журнала исключений и возвращение нулевого значения (так что вызывающий код может не знать, что что-то пошло не так), либо просто использование исключений без трассировки. Если вы дадите больше подробностей о том, какие проблемы вы хотите решить, может быть, я или кто-то другой может быть более полезным.