자바 에서 try catch finally 실행 순서

1298 단어 자바
1. finally 에 대해 서 는 스 택 호출 에서 마지막 으로 호출 됩 니 다.try 에서 사용 하 는 프로그램 절차 가 모두 실행 되 었 고 return 을 기다 리 는 동안 finally 가 실행 되 기 시작 한 것 이다.이렇게 하면 마지막 try 의 return 이 덮어 집 니 다.

package com;
public class Test {
	public static void main(String[] args) {
		System.out.println(test());
	}

	static int test() {
		int i = 0;
		try {
			return i++;
		} finally {
			return ++i;
		}
	}
}


돌아오다
다음은 인터넷 에서 한 학우 의 잘못된 부분 으로 finally 가 마지막 으로 집행 한 것 이 아니 라 고 생각 합 니 다.원인 은 말 할 필요 가 없다.

public class FinallyReturnTest {
    public static void main(String[] args) {
        tt();
    }
 
    // finally           ,    return   ,    exit()。
    static Return tt() {
        try {
            return new Return("try");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            System.out.println("finally");
        }
        return new Return("outter");
    }
 
}
 
class Return {
    Return(String name) {
        System.out.println("return " + name);
    }
}

좋은 웹페이지 즐겨찾기