Блок finally выполняется всегда перед выходом из функции.
В данном случае после вызова return в блоке catch, выполнение кода перейдёт в блок finally, а выход из функции будет осуществлён уже после её выполнения.
Если в блоке try возвращается какое-либо значение, а в блоке finally присутствует конструкция
```
return value;
```
то возвращаемое значение будет перезаписано.
В данном случае после вызова return в блоке catch, выполнение кода перейдёт в блок finally, а выход из функции будет осуществлён уже после её выполнения.
Если в блоке try возвращается какое-либо значение, а в блоке finally присутствует конструкция
```
return value;
```
то возвращаемое значение будет перезаписано.