[問題] 關於例外呼叫的試題

看板java作者 (Chris)時間16年前 (2010/01/24 01:16), 編輯推噓3(303)
留言6則, 3人參與, 最新討論串1/2 (看更多)
大家好,近日在作計算機概論的研究所考題,仍發現對例外呼叫的概念不清楚。 兩題的問題我沒有確定答案,在此請教正確觀念: 1.在try block 中(註記22-26),是哪一行丟出例外物件? Ans. ref2.m1() ? 2.能否將註記26的catch (E1 e)改成 catch (E2 e)?請解釋原因 本題我不知如何回答。而此更改並無法通過compile。 感謝各位的幫忙。 =================================== public class E1 extends Exception { public void printM() {System.out.println("40");} } public class E2 extends E1 { public void printM() {System.out.println("50");} } public class A { public void m1() throws E1 {{System.out.println("10");}} } public class B extends A { public class C extends A{ public void m1() throws E2 { System.out.println("20"); throw new E2() } } public void m1() {System.out.println("30"); } public class Test { public static void main (String[] args) { try { A ref = new B(); //22 A ref2 =((B)ref.new C()); //23 ref.m1(); //24 ref2.m1(); //25 } catch (E1 e) { //26 e.printM(); } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.71.52 ※ 編輯: orinsinal 來自: 218.167.71.52 (01/24 01:17)

01/24 15:10, , 1F
A ref 2 = 是哪來的宣告?
01/24 15:10, 1F

01/24 15:11, , 2F
E2 的 Ssystem.out.println 又是哪來的 package...
01/24 15:11, 2F

01/24 15:12, , 3F
問題一的執行結果跟隨著那個執行結果的更具體疑問呢?
01/24 15:12, 3F
※ 編輯: orinsinal 來自: 61.230.68.93 (01/24 17:29)

01/24 17:31, , 4F
宣告打錯的地方已修正.第一題是原題抄錄,就是問哪一行丟
01/24 17:31, 4F
※ 編輯: orinsinal 來自: 61.230.68.93 (01/24 17:31)

01/24 17:32, , 5F
出例外物件. 這個程式輸出會是 30 20 50
01/24 17:32, 5F

01/24 22:14, , 6F
這好像就是多型概念?
01/24 22:14, 6F
文章代碼(AID): #1BMoxKXZ (java)
文章代碼(AID): #1BMoxKXZ (java)