Шаблон использования try / catch в методах finally, к сожалению, является повторяющимся шаблоном в Java 6 и ранее. Я бы сказал, что на самом деле это плохая практика, но ее нельзя избежать в Java 6 (см. Ниже для Java 7).
Дополнительная проблема заключается в том, что любые новые исключения, выдаваемые в блоке finally, будут переопределять исключения, которые были выданы до достижения этого блока.
В Java 7 есть специально для случаев, когда ресурсы должны быть закрыты (большинство случаев использования для конструкций try / finally / try / catch), новая конструкция try-with-resources. Это также будет охватывать как первичные, так и вторичные исключения.
Таким образом, использование этой конструкции теперь является лучшей практикой в JDK 7, и да, код, который вы показываете, является плохой практикой в Java 7.