我需要跟蹤以下代碼。怎麼了? 我能走到今天......異常處理Try-catch:如果var 1,2和3爲假,會發生什麼
讓我們開始(現在的嘗試f) ˚F開始下一扔EXC1因爲VAR1 =假 現在我終於回到主,試圖轉到方法d?
void main() {
println("Let's start");
try {
f();
d();
} catch (Ex1 ex) {
println("main caught Ex1");
} catch (Ex3 ex) {
println("main caught Ex3");
} finally {
println("main finally");
}
println("main end");
}
void f() {
println("F begins");
try {
if (var1) {
d();
} else {
throw new Ex1();
}
} catch (Ex2 ex) {
println("f caught Ex2");
}
println("a end");
}
void d() {
println("d begin");
try {
if (var2) throw new Ex2();
if (var3) throw new Ex3();
} catch (Ex3 ex) {
println("d caught ex3");
} finally {
println("d finally");
}
println("d end");
}
你沒有b()你有d() – Mozzie
是的,它調用d()。我對「流程」感到困惑 – StreamingBits
到目前爲止,我看到程序打印「讓我們開始」,去f(),「F開始」,嘗試語句var1 = false,然後繼續執行其他操作,拋出Exc1(),返回以d,「d開始」,打印「d finally」,主要,主要捕獲ex1,「主要捕獲Exc1」,「主要最終」,「主要目的」爲主。它是否正確? – StreamingBits