[問題] Exception 的問題

看板java作者 (這就是人生嗎)時間15年前 (2010/03/24 21:25), 編輯推噓1(105)
留言6則, 4人參與, 最新討論串1/1
程式如下 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
因為叫RuntimeException...?
03/24 22:17, 1F

03/24 22:17, , 2F

03/24 22:48, , 3F
Exception 有兩種,checked & unchecked,Run..Exc..屬於後者
03/24 22:48, 3F

03/25 06:35, , 4F
本板 #1ApLD3za #1ApgIPUI 有人跟某人正好在討論這個…
03/25 06:35, 4F

03/25 09:20, , 5F
剛剛跑去笨板找,結果沒找到,想想不對才發現我看錯字了 = =
03/25 09:20, 5F

03/25 11:23, , 6F
LOL XD
03/25 11:23, 6F
文章代碼(AID): #1BgXAwAd (java)