Сначала выполните try, если есть исключение, выполните catch и все равно выполните наконец.
Функция, наконец, обязательно выполнит свою часть.
Что касается процесса выполнения функции, когда происходит возврат, функция сохраняет данные в определенном месте, а затем сообщает основной функции, что я больше не буду ее выполнять, вы можете выполнить ее следующей, поэтому функция будет запущен.
Но когда в функции появляется параметрfinally, он всегда будет выполнен. Поэтому, даже если return был выполнен в try или catch, функция в это время не завершит работу и не сообщит основной функции о необходимости выполнения. Вместо этого она будет ждать. для окончательного выполнения. Затем вернитесь и сообщите основной функции, чтобы она выполнила ее. В этот момент, если return появляется в, наконец, значение return перезапишет значение в try или catch, а затем основной функции будет сообщено: Я не буду это исполнять, ты иди и исполняй. Таким образом, основная функция наконец получит возвращаемое значение. То есть возвращаемое значение подфункции всегда является возвращаемым значением вfinally (пока в вызываемой функции есть значение)