一、檢查時機(jī)

1、運(yùn)行時異常: 這類異常通常表示編程錯誤,如除數(shù)為零、數(shù)組越界等。這類異常是在程序運(yùn)行時才被檢查。
int result = 10 / 0; // 拋出ArithmeticException,是一種運(yùn)行時異常2、非運(yùn)行時異常: 這類異常通常表示可預(yù)見的錯誤條件,如文件不存在、網(wǎng)絡(luò)問題等。這類異常在編譯階段就需要處理。
FileReader reader = new FileReader("nonexistent-file.txt"); // 拋出FileNotFoundException,是一種非運(yùn)行時異常二、處理責(zé)任
運(yùn)行時異常: 編譯器不會檢查是否有處理或拋出運(yùn)行時異常,完全依賴于程序員。非運(yùn)行時異常: 編譯器會強(qiáng)制要求對這類異常進(jìn)行處理(try-catch)或者聲明拋出(throws)。三、繼承結(jié)構(gòu)
運(yùn)行時異常: 繼承自RuntimeException類。非運(yùn)行時異常: 繼承自Exception類,但不包括RuntimeException。常見問答
Q1: 是否應(yīng)該盡量避免使用運(yùn)行時異常?不一定。運(yùn)行時異常用于標(biāo)記程序員的編程錯誤,一般不應(yīng)被捕獲,除非你有特殊的修復(fù)邏輯。Q2: 如何自定義非運(yùn)行時異常?可以通過繼承Exception類,并實(shí)現(xiàn)構(gòu)造方法來自定義非運(yùn)行時異常。Q3: 在接口中應(yīng)該聲明運(yùn)行時異常嗎?一般不建議在接口中聲明運(yùn)行時異常,因?yàn)樗鼈兺ǔJ菍?shí)現(xiàn)細(xì)節(jié)。

京公網(wǎng)安備 11010802030320號