大家好,今天我們來講一個筆試和面試偶爾都會問到的問題,並且在工作中不知道原理,也會造成濫用。 大家可能都知道,try 塊用來捕獲異常,catch塊是處理try塊捕獲的異常,finally 塊是用來關閉資源。一個try塊后面可以跟多個catch塊,如果后面一個catch塊也不跟,就一定要跟一個 ...
今天看一個Java SSH的面試題,題目大概意思是:try catch中存在return語句,還會執行finally塊嗎 如果執行,是return先執行還是finally先執行 如果有多個return語句,結果如何 看了以后我還真犯嘀咕,做了軟件開發這些年,還沒認真思考過則個問題,於是趕緊寫個測試測試代碼如下: 為了探究個明白,使用ILSpy工具查看IL代碼,GetValue 的IL代碼如下: ...
2014-12-12 18:17 8 1215 推薦指數:
大家好,今天我們來講一個筆試和面試偶爾都會問到的問題,並且在工作中不知道原理,也會造成濫用。 大家可能都知道,try 塊用來捕獲異常,catch塊是處理try塊捕獲的異常,finally 塊是用來關閉資源。一個try塊后面可以跟多個catch塊,如果后面一個catch塊也不跟,就一定要跟一個 ...
異常處理中,try、catch、finally的執行順序,大家都知道是按順序執行的。即,如果try中沒有異常,則順序為try→finally,如果try中有異常,則順序為try→catch→finally。但是當try、catch、finally中加入return之后,就會有幾種不同的情況出現 ...
如果try中沒有異常,則順序為try→finally,如果try中有異常,則順序為try→catch→finally,但是當try、catch、finally中加入return之后,就會有幾種不同的情況出現: 一:try中帶有return 1、基本類型的情況下 ...
假設代碼順序書寫如下:try → catch → finally → 其他代碼 則: 1、正常執行順序:try → catch → finally → 其他代碼 2、try,catch和finally和其他代碼的執行條件 ...
try..catch..finally這個語法大家都很熟悉,就是捕捉異常、處理異常,面試中經常被問到的一個問題是:如果在try...catch中的某某地方return了,那么之后的某某步驟還會不會執行。今天就來用代碼分析一下各種可能的執行情況,懶得看文章的話,直接看最后的總結,如果不明白再回 ...
當一個方法中的 try catch finally 當有return時的執行順序? 一個不為void的方法必須有返回值,所以在finally或try catch finally 語句之后必須有 return語句。因為return語句之后的代碼無意義, 所以return ...
關於try...catch...finally里面的return一直是面試的一個熱門考點。無非就分以下幾個情況: 1、當有finally語句並且try中有return,在執行到return(還未執行)的時候,會先執行finally里面的內容,然后再執行行try中的return ...
目錄 問題背景 finally語句一定執行嗎 finally語句與return的執行順序 問題分析 1. finally語句在f()執行之后、y返回之前執行 2. finally塊中的return語句覆蓋try塊中 ...