try_catch_finally的注意事項

                      今天考java有一條題目我錯了,回來試試,才知道個人java還有好多細節沒注意。
        public class Test {
public static String str = "";
public static void fun(int i) {
try {
if(i == 1) {
throw new Exception();
}
str += "1";

} catch (Exception e) {
// TODO: handle exception
str += "2";
return;
}finally{

str += "3";
}
str += "4";
}
public static void main(String[] args) {
fun(0);
fun(1);
System.out.println(str);
}


}

問最後打印的結果,個人答案是1342,但是實際是13423。
 個人錯誤時認爲在catch中return以後,就今後處應該退出這個方法了,但是實際是你必須還得把finally中的代碼執行一遍。


還有注意的是,try塊的時候,有異常拋出,則從拋出異常處跳出try塊,開始查找匹配的catch。

個人四分啊.....但是這道題很不錯!java

相關文章
相關標籤/搜索