public class test {
public static string output =
public static void foo(int i) {
try {
if(i= =
) {
throw new Exception ();
}
output +=
;
)
catch(Exception e) {
output +=
;
return;
)
finally (
output +=
;
)
output +=
;
)
public static void main (string args[]) (
foo(
);
foo(
);
)
)
What is the value of the variable output at line
?
Ans:
答案怎麼會輸出
個數字呢?
首先
foo(
)
就直接到第
行
output=
然後
因為沒有拋出異常
所以直接運行
行
然後運行
行
此時
output=
foo(
)
因為拋出異常
所以運行
行
然後因為catch了異常
然後運行finally裡的語句
但是
行的不再被運行
因為
行已經要求return了
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26468.html