一、異常與重寫
重寫方法不能丟擲"超過原方法所丟擲異常型別範圍"的異常,重寫方法也可以選擇不丟擲異常。
如:原方法丟擲了乙隻狗,重寫方法不能丟擲乙隻大象,也不能丟擲乙隻動物;
重寫方法可以丟擲乙隻狗,或者乙隻德國牧羊犬。
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中的...