最近看到乙個非常有意思的**:
public
class testexception
public
static
intfoo() catch(arithmeticexception e) finally
}}
問:程式的輸出是什麼?
分析:
程式會丟擲arithmeticexception異常,因此會執行到catch塊,所以返回45是有可能的,返回4可以排除了;
但是,但是,但是好像也學到過finally是一定會在異常結束前執行,那麼就應該是返回34了。
下面可以做兩個簡單的實驗。
實驗一:
public
class testexception
public
static
intfoo() catch(exception e) finally
}}
輸出結果:
execute catch block
execute finally
block
34
實驗二:
public
class testexception
public
static
intfoo() catch(exception e) finally
}}
輸出結果:
execute try block, before
return
execute finally block
34
結果都是返回34,說明finally會在try和catch塊結束之前執行,那結束之前又是在什麼時候呢?
實驗一說明了catch要先於finally塊開始執行,但是在catch塊執行return語句之前,會執行finally塊;
實驗二說明了當try的return語句之前時,會先執行finally塊。
因此:finally會在try和catch return之前執行,如果try和catch塊中沒有return語句,那就是在兩個塊的大括號結束前執行。
ubuntu下定時執行java程式
a.在終端下輸入crontab e 加入一行,sh 具體可參考鳥哥的私房菜 b.使用者編輯好後,儲存,會存放在 var spool cron crontab user。如果是普通使用者沒有許可權訪問 crontab檔案,會提示儲存在 tmp cron.x crontap,作為臨時檔案,其實在 var...
Java專案啟動時執行指定方法的幾種方式
這個註解呢,可以在spring載入這個類的時候執行一次。來看一下下方 123 4567 891011 1213 1415 1617 1819 2021 component public class test 我第二個執行 autowired private t t 我第三個個執行 postconst...
關於第四章中,SQL指令何時執行小方框的補充說明
關於第四章中,sql指令何時執行小方框的補充說明 文 黃忠成 在 極意之道 net framework 3.5 資料庫開發聖典 asp.net 一書中,我於第四章,4 36頁處放上sql指令何時執行的小方框,裡面的程式證明了當對同一linq to sql回傳值下達多次linq expression表...