任何呼叫try 或者catch中的return語句之前,都會先執行finally語句,當然前提是finally存在。如果finally中有return語句,那麼程式就return了,所以finally中的return是一定會被return的,編譯器把finally中的return實現為乙個warning。
package exercise;
/** * 基本型別測試try,finally
*@author administrator
**/public
class
testreturnandfinally
static
int test()
finally
}}結果:
1
解釋:對於例一來說,一開始現在棧中存放了乙個值為1的變數x,return x執行完了以後,x存到了暫存器中,接著執行++x,此時x的值為2,接著又執行return x,此時暫存器中的值被返回出去了,棧銷毀。
// 引用型別測試try,finally
public
class testreturnandfinally
static stringbuffer test()
finally
}}結果:
xwy
//普通類
public
class
quote
/** * 引用型別中的基本型別測試try,finally
**/public
class
testreturnandfinally
static string test()
finally
}}測試結果:
x
請讀者根據輸出的位址值區仔細領悟x和x.tostring.
finally**塊:定義一定執行的**,通常用於關閉資源。
try…..catch一般有三種格式:
//第乙個格式:
trycatch()
//第二個格式:
trycatch()
finally
//第三個格式:
tryfinally
//記住一點:catch是用於處理異常。如果沒有catch就代表異常沒有被處理過。如果該異常是檢測時異常。那麼必須宣告。
Java try和finally的用法
在 中,可以使用try 塊進行防止錯誤導致應用崩潰 try 這時,在try後面的大括號位置就會報錯,這是因為try語句需要和catch語句一起使用 try catch exception e try和catch兩者是不可分開的,如果try裡面丟擲了異常,catch就會捕捉到這個異常,執行catch內...
finally塊與拋異常
複習一下finally塊裡有return和try拋異常的程式執行順序問題.首先看乙個測試例子 public class finallytrytest public static int testfinally catch exception e finally 在執行之前先簡單分析一下,可能會說這麼...
Java中finally與return的執行順序
finally不會執行的兩種情況 1.finally對應的try塊語句還沒被執行到就返回了2.finally對應的try塊語句中有system.exit 這樣的語句 finally塊的語句在try或catch中的return語句 執行之後返回之前執行 若finally裡也有return語句,則 覆蓋...