公共?靜電?字符串?output= "?;
公共?靜電?作廢?foo(int?i){
嘗試{
if(i==1){
扔?新的?異常();//如果參數是1,拋出異常,進入catch。
}
output+= " 1 ";
}catch(異常?e){
輸出+= " 2 ";//如果參數是1,在這裏執行。
返回;
}最後{
輸出+= " 3 ";//反正會在這裏進行。
}
輸出+= " 4 ";//這是最後壹條執行語句。如果拋出異常,它不會在這裏執行。
}
公?靜電?作廢?main(String[]?args){
foo(0);//第壹次呼叫
foo(1);//第二次調用
system . out . println(test . output);
}
}
/*
*?現在來說說執行步驟:我把output []的值括起來
*?第壹次調用foo(0):(1)參數為0,所以執行output+="1 ",所以現在output為[?1];
*?(2)執行到output+="3 ",那麽輸出現在是[?13];
*?(3)執行到輸出+= " 4 ";所以現在輸出是[?134]
*?對foo(1)的第二次調用:(1)在if內部執行並拋出壹個異常。
*?(2)輸入catch並執行output+="2 "。現在的輸出是[?1342]
*?(3)最後回車,執行output+="3 "。現在的輸出是[?13423]
*/