В блоке операторов try и блоке операторовfinally есть операторы return , но в блоке операторов catch нет оператора return .
Код выглядит следующим образом:
publicclassMain{publicstaticvoidmain(String[]args){System.out.println(test2());}publicstaticinttest2(){inti=10;try{System.out.println(try оператор);return--i;}catch( Exceptione) {System.out.println(оператор catch);}finally{System.out.println(операторfinally);return--i;}}}
Результаты бега следующие:
оператор try, наконец, оператор 8
Порядок выполнения:
1. Сначала выполните оператор в блоке try, включая операцию выражения в операторе return, но не возвращайте результат.
2. Выполните весь код в блоке операторовfinally.
3. Наконец, я обнаружил, что в блоке операторовfinally есть оператор return и return отсюда.