JavaSE 45th 異常與重寫

2021-07-28 22:19:03 字數 1215 閱讀 8545

一、異常與重寫

重寫方法不能丟擲"超過原方法所丟擲異常型別範圍"的異常,重寫方法也可以選擇不丟擲異常。

如:原方法丟擲了乙隻狗,重寫方法不能丟擲乙隻大象,也不能丟擲乙隻動物;

重寫方法可以丟擲乙隻狗,或者乙隻德國牧羊犬。

class a 

}/* 正確,拋小了可以

* filenotfoundexception是ioexception的子類

*/class b1 extends a

}/* 正確,拋小了可以

* filelockinterruptionexception也是ioexception的子類

*/class b2 extends a

}/* 錯誤,拋大了不行

* exception是ioexception的父類

*/class b3 extends a

}/* 正確,可以不拋異常

* method()方法內部是否要try-catch

* 完全取決於method()方法內部的**是否有可能發生異常

*/class b4 extends a

}/* 正確,可以丟擲多餘的runtimeexception異常

* 雖然超出ioexception的範疇,但runtimeexception屬於可逮可不逮的異常,

* 想拋也無妨

* arithmeticexception是runtimeexception的子類,也可以拋

*/class b5 extends a

}/* 正確,不拋ioexception是可以的,

* 再拋乙個可逮可不逮的runtimeexception也是可以的

*/class b6 extends a

}/* 錯誤,丟擲多餘的異常不行

* myexception繼承自exception,exception作為非runtimeexception的父類,

* 所以exception必須當做"不逮就得拋、不拋就得逮"的異常,myexception也是這種異常,

* 往外拋這種異常,超出了ioexception的範疇

*/class b7 extends a

}class myexception extends exception

總結:1)不能往大了拋,只能往小了拋,或者拋一樣的,或者不拋。

2)可以拋runtimeexception及其子類異常。

JAVA SE 異常處理

throws 宣告要丟擲的異常的名字 宣告 try 捕獲異常,用於會產生異常的 塊 catch 處理異常,對try中捕獲的異常進行處理 finally 最後處理的區域,一定會進行的,通常用於清除操作 class exceptionname extends exception public void ...

JavaSE 3th 方法的過載

方法的過載 test類中有如下void max int a,int b 方法用於列印出兩個int型別的數中最大的數,但如果實參為float型別或double型別,該方法就不可用了。class test 於是新增了兩個方法如下 class test void maxfloat float a,floa...

javaSE學習心得 3 異常

1.異常的體系 throwable error 通常出現重大問題如 執行的類不存在或者記憶體溢位等。不編寫針對 對其處理 exception 在執行時執行出現的一起情況,可以通過try catch finally exception和error的子類名都是以父類名作為字尾。2.throwable中的...