JAVA常見的五種運行異常 在JAVA中捕獲異常后throw自定義異常是不優(yōu)雅的嗎?
在JAVA中捕獲異常后throw自定義異常是不優(yōu)雅的嗎?事實上,這種方法在很多框架中都有使用1。Rethrow自定義異常,用于更好地隔離異常,識別異常類型、ID、自定義消息和日志2。對第三方庫的異常進
在JAVA中捕獲異常后throw自定義異常是不優(yōu)雅的嗎?
事實上,這種方法在很多框架中都有使用
1。Rethrow
自定義異常,用于更好地隔離異常,識別異常類型、ID、自定義消息和日志
2。對第三方庫的異常進行打包和抽象,以保持與框架異常定義的一致性,方便框架處理不同的異常
3。Restful API,統(tǒng)一異常管理
謝謝
!錯誤和異常都繼承自throwable。
錯誤是指程序不必處理的系統(tǒng)級錯誤和異常,如內(nèi)存溢出,這是程序無法處理的;
異常是指程序需要捕獲或處理的異常,這是編程或編碼中的問題。
未檢查的異常:錯誤和runtimeException及其子類。Java編譯器在編譯時不會發(fā)現(xiàn)此異常,因此不需要程序來處理此異常。當然,try、catch和finally也可以用來處理這個異常。當出現(xiàn)這樣的異常時,大多數(shù)都是代碼編寫中的問題,應(yīng)該通過修改代碼而不是捕獲來解決,比如ClassCastException、NullPointerException等
Checked exception:除了error和runtimeException。Java編譯器在編譯時會發(fā)現(xiàn)這種異常,因此必須對這種異常進行預(yù)處理,即使用try、catch和finally來處理這種異常,或者用throws子句將其拋出到上層,否則編譯將無法通過。這種異常通常是由運行環(huán)境引起的。
java常用的異常類有哪些?
1. 算術(shù)異常-在算術(shù)運算中,除以0或模。
2. ArrayIndexOutOfBoundsException—數(shù)組越界訪問。
3. Arraystoreexception—寫入數(shù)組操作時數(shù)據(jù)存儲異常、對象或數(shù)據(jù)類型不兼容。
4. ClassCastException—類型轉(zhuǎn)換異常。
5. Illegalargumentexception-方法的參數(shù)無效。
6. Illegalthreadstateexception—試圖非法更改線程的狀態(tài),例如試圖啟動已運行的線程。
7. NullPointerException-試圖訪問空對象的空數(shù)組的變量、方法或元素
8。Numberformatexception—數(shù)據(jù)格式異常,試圖非法將字符串轉(zhuǎn)換為數(shù)值(反之亦然)。
9. SecurityException—如果小程序嘗試執(zhí)行WWW瀏覽器安全設(shè)置禁止的操作。
10. 不兼容的classchangeexception—如果更改類的定義而不重新編譯引用該類的其他對象。例如,成員變量的聲明從靜態(tài)更改為非靜態(tài),但引用該變量的其他類不會重新編譯,反之亦然。
11. OutOfMemoryException—內(nèi)存不足,通常在創(chuàng)建對象時。
12. Noclassdeffoundexception-Java運行時系統(tǒng)找不到引用的類。
13. 不兼容的typeexception—試圖實例化Java運行時系統(tǒng)將拋出的接口。
14. 如果要調(diào)用的方法是C函數(shù),但Java運行時系統(tǒng)無法連接到該函數(shù)。
15. 內(nèi)部異常-由內(nèi)部系統(tǒng)故障引起的異常,這可能是由于Java運行時系統(tǒng)本身引起的。如果你發(fā)現(xiàn)一個可復(fù)制的內(nèi)部異常,你可以直接給sun發(fā)郵件java@java.Sun.com.