Как известно, последовательность операций, записанная finally, должна выполняется в любом случае, независимо от того появлялась ли ошибка в try.
Если ошибки в try не возникало, то при появлении его в finally оно пойдёт по стеку исключений, до тех пор, пока не придёт в catch.
Более интересен случай, когда исключение было в try, а потом возникло и в finally. Тогда исключение, возникшее в finally, перекроет исключение из блока try, и пойдёт по стеку. Начальная ошибка будет потеряна.
Это усложняет отладку.