執行時異常和檢查性異常區別
Java提供了兩類主要的異常:runtime exception和checked exception。 checked 異常也就是我們經常遇到的IO異常,以及SQL異常都是這種異常。對於這種異常,JAVA編譯器強制要求我們必需對出現的這些異常進行catch。所以,面對這種異常不管我們是否願意,只能自己去寫一大堆catch塊去處理可能的異常。 但是另外一種異常:runtime exception,也稱執行時異常,我們可以不處理。當出現這樣的異常時,總是由虛擬機器接管。比如:我們從來沒有人去處理過NullPointerException異常,它就是執行時異常,並且這種異常還是最常見的異常之一。 出現執行時異常後,系統會把異常一直往上層拋,一直遇到處理程式碼。如果沒有處理塊,到最上層,如果是多執行緒就由Thread.run()丟擲,如果是單執行緒就被main()丟擲。丟擲之後,如果是執行緒,這個執行緒也就退出了。如果是主程式丟擲的異常,那麼這整個程式也就退出了。執行時異常是Exception的子類,也有一般異常的特點,是可以被Catch塊處理的。只不過往往我們不對他處理罷了。也就是說,你如果不對執行時異常進行處理,那麼出現執行時異常之後,要麼是執行緒中止,要麼是主程式終止。 如果不想終止,則必須撲捉所有的執行時異常,決不讓這個處理執行緒退出。佇列裡面出現異常資料了,正常的處理應該是把異常資料捨棄,然後記錄日誌。不應該由於異常資料而影響下面對正常資料的處理。在這個場景這樣處理可能是一個比較好的應用,但並不代表在所有的場景你都應該如此。如果在其它場景,遇到了一些錯誤,如果退出程式比較好,這時你就可以不太理會執行時異常,或者是通過對異常的處理顯式的控制程式退出。
相關文章
- Java中Error和Exception的異同以及執行時異常(Runtime exception)與檢查型異常(checked exception)的區別JavaErrorException
- 異常-編譯期異常和執行期異常的區別編譯
- hibernate異常之--count查詢異常
- 異常和異常呼叫鏈
- Java異常十一:使用throw丟擲異常物件;throw和throws的區別Java物件
- 異常檢測
- 執行緒池OOM異常執行緒OOM
- 程式執行異常: Modulo by zero
- 21. 羅列常見的幾個執行時異常
- 華為雲:彈性負載均衡健康檢查異常負載
- 異常-異常的概述和分類
- 異常-throw的概述以及和throws的區別
- 序列異常檢測
- springboot 全域性異常攔截器,友好異常提示Spring Boot
- springboot下新增全域性異常處理和自定義異常處理Spring Boot
- 準實時異常檢測系統
- Java中異常分類和Throw和Throws的區別Java
- Java異常型別Java型別
- 執行程式時,程式返回TooManyResultsException異常行程OOMException
- AI賦能一鍵自動檢測:頁面異常、控制元件異常、文字異常AI控制元件
- 異常篇——異常記錄
- 異常篇——異常處理
- 異常-自定義異常的實現和測試
- Java捕獲非檢查異常----UncaughtExceptionHandler的使用JavaException
- 異常-異常的注意事項
- Java 異常(二) 自定義異常Java
- 異常和中斷
- NoClassDefFoundError 和 ClassNotFoundException異常ErrorException
- 異常?
- 異常
- Java記憶體區域與記憶體溢位異常 - 執行時資料區Java記憶體溢位
- 執行ArrayList的remove(object)方法拋異常?REMObject
- JDK執行緒池異常處理方式JDK執行緒
- [譯] 時間序列異常檢測演算法演算法
- 異常-throws的方式處理異常
- 兩種異常(CPU異常、使用者模擬異常)的收集
- springboot全域性異常處理Spring Boot
- wpf 捕獲全域性異常
- .netcore全域性異常處理NetCore