Primeiro execute try, se houver uma exceção, execute catch e execute finalmente de qualquer maneira.
Uma função definitivamente executará a parte finalmente.
Em relação ao processo de execução de uma função, quando houver um retorno, a função irá armazenar os dados em um determinado local, e depois informará a função principal, não irei mais executá-la, você pode executá-la em seguida, então a função será lançado.
Mas quando finalmente aparece em uma função, finalmente será sempre executado. Portanto, mesmo que o retorno tenha sido executado em tentativa ou captura, a função não será encerrada neste momento e não dirá à função principal para executar. para finalmente ser executado. Em seguida, volte e diga à função principal para executá-lo. Neste momento, se return aparecer em finalmente, o valor de return substituirá o valor em try ou catch, e então a função principal será informada: Eu não vou executá-lo, você vai e executa. Portanto, a função principal obterá o valor de retorno finalmente. Ou seja, o valor de retorno da subfunção é sempre o valor de retorno em finalmente (desde que haja um valor na função chamada)