看板 java 關於我們 聯絡資訊
大家好,近日在作計算機概論的研究所考題,仍發現對例外呼叫的概念不清楚。 兩題的問題我沒有確定答案,在此請教正確觀念: 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)
ogamenewbie:A ref 2 = 是哪來的宣告? 01/24 15:10
ogamenewbie:E2 的 Ssystem.out.println 又是哪來的 package... 01/24 15:11
ogamenewbie:問題一的執行結果跟隨著那個執行結果的更具體疑問呢? 01/24 15:12
※ 編輯: orinsinal 來自: 61.230.68.93 (01/24 17:29)
orinsinal:宣告打錯的地方已修正.第一題是原題抄錄,就是問哪一行丟 01/24 17:31
※ 編輯: orinsinal 來自: 61.230.68.93 (01/24 17:31)
orinsinal:出例外物件. 這個程式輸出會是 30 20 50 01/24 17:32
SKelemeNt:這好像就是多型概念? 01/24 22:14