Java 면접 문제 - try 문장에서 return 문장을 실행합니다

1770 단어
제목:try {}에return 문장이 하나 있는데, 이try 뒤에 있는finally {}에 있는 코드가 실행되는지, 언제 실행되는지,return 앞에서나 뒤에서?
public class TryCatchDemo {
    public static void main(String[] args) {
        System.out.println(new Demo().myfunction());
    }
}

class Demo {
    public int myfunction() {
        int x = 1;
        try {
            System.out.println("try block");
            return x;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            ++x;
            System.out.println("finally block");
        }
        return x;
    }
}

실행 결과:
try block
finally block
1

결과에서 우리는 다음과 같은 몇 가지를 요약할 수 있다. 1. try 블록에서return 문장을 실행했지만finally 블록은 여전히 실행될 것이다.
2. 최종적으로 되돌아온 결과는 1이다. 리턴 문장은finally 문장 블록이 실행된 후에 실행된 것이 아니라 리턴 문장을 실행하는 과정에서finally 블록에 들어가 실행되는 것을 알 수 있다.

좋은 웹페이지 즐겨찾기