[問題] Exception 的問題
程式如下
import java.io.*;
class A
{
public void process()
{System.out.print("A, ");}
}
class B extends A
{
public void process() throws IOException
{
super.process();
System.out.print("B, ");
throw new IOException();
}
public static void main(String[] args)
{
try{new B().process();}
catch(IOException e){System.out.println("Exception");}
}
}
編譯會出錯,訊息為
B.java:11: process() in B cannot override process() in A; overridden method does
not throw java.io.IOException
這應該是書上說的,override method throws 的Exception 要為父類別 method
throws 的Exception 的子類別或不寫。
(不確定是不是這個原因)
我的問題是,那為什麼我把 所有的IOException都改成 RuntimeException就過了呢?
RuntimeException不需要遵守這個規定嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 115.43.220.48
→
03/24 22:17, , 1F
03/24 22:17, 1F
推
03/24 22:17, , 2F
03/24 22:17, 2F
→
03/24 22:48, , 3F
03/24 22:48, 3F
→
03/25 06:35, , 4F
03/25 06:35, 4F
→
03/25 09:20, , 5F
03/25 09:20, 5F
→
03/25 11:23, , 6F
03/25 11:23, 6F