2011-08-20 81 views
0

可能重複:
Is there such case when in try\finally block the finally won't be executed?`try`塊幫助Java

我是比較新的Java和我剛聽到try-catch塊(3分鐘前要準確)。

try-catch塊中,finally部分(何時存在)有不是執行?

try { 
    if (choice) { 
     //... 
    } else { 
     //... 
    } 
} finally { 
    doesThisEverNOTrun(); 
} 
+4

的可能重複[有沒有這樣的情況下,嘗試\當finally塊最終將不會被執行?](http://stackoverflow.com/questions/3484353/is-there-such-case-when-in -try-finally-block-the-finally-wont-be-executed)和http://stackoverflow.com/questions/6228528/和http://stackoverflow.com/questions/464098/ –

+0

[是](http: //thedailywtf.com/Articles/My-Tales.aspx)。 ;) –

回答

0

是的。

try { 
    if (choice) { 
     while (true); 
    } else { 
     System.exit(0); 
    } 
} finally { 
    doesThisEverNotRun(YES); 
} 

雖然通常情況下finally部分被執行。

+0

_「往往不是」_。哎,那肯定是一個有用的陳述。 '' –

+0

@馬特球它實際上*的*有用的,當你想想看:) – fireshadow52

+0

@ fireshadow52非常感謝!!!!!!!!!!!!!! – Tony

0

如果(虛擬)機不崩潰,你不要在try或catch塊調用System.exit(),finally塊將執行。