try_catch_finally塊執行順序,包你以後永不迷糊

public int test() {
		int x = 1;
		
		try {
			return x;
		}
		finally {
			++ x;
		}
	}
  • 第一步:執行try上面代碼
  • 第二步:執行try中代碼(包含return後面的計算不包含return)
    • 具體順序:先執行try中return上面的代碼,然後執行return後面的計算,並單獨保存在內存中(位置:局部變量表中的特定的位置)---注意:此時並沒有執行return
  • 第三步:執行finally快中代碼,即++x
  • 第四步:return
    • 解釋:直接取出第二步已經保存的值並返回(return),即在第二步中已經計算過了return後面的值,第三步執行的計算結果已經用不上了
  • 第五步:假如finally塊下面(大括號下面,finally外面)有一步return語句,這一步執行不到!!!

我的記錄是不是醍醐灌頂?那是不是考慮給小編一個小小的打賞?,

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章