Блок finally и блок catch в PowerShell отличаются по своему назначению и поведению. 13
Блок catch предназначен для обработки ошибок, возникающих в процессе выполнения скрипта. 13 При возникновении в блоке Try прерывающей ошибки оболочка PowerShell ищет соответствующий блок catch для обработки этой ошибки, и если он найден, то выполняет находящиеся в нём инструкции. 1 Блок catch может включать в себя любые команды, необходимые для обработки возникнувшей ошибки и/или восстановления дальнейшей работы скрипта. 1
Блок finally располагается обычно в конце скрипта. 1 Команды, находящиеся в нём, выполняются в любом случае, независимо от возникновения ошибок. 1 Была ли ошибка перехвачена и обработана блоком catch или при выполнении скрипта ошибок не возникало вообще, блок finally будет выполнен. 1 Основная его задача — высвобождение ресурсов (закрытие процессов, очистка памяти и т.п.). 1