作者orinsinal (Chris)
看板java
標題[問題] 關於例外呼叫的試題
時間Sun Jan 24 01:16:01 2010
大家好,近日在作計算機概論的研究所考題,仍發現對例外呼叫的概念不清楚。
兩題的問題我沒有確定答案,在此請教正確觀念:
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