Блок finally в C# работает следующим образом: если он присутствует, он выполняется всегда, сразу же после завершения работы try-блока, как бы последний ни завершился. 1
С помощью блока finally можно выполнить очистку всех ресурсов, выделенных в блоке try, и запускать код даже при возникновении исключения в блоке try. 3